用户登陆 用户注册
您的位置:首页> 技术文章>内容正文
VB与s7200通讯例子(blueapple)
[正文]:vb与s7200通讯例子(blueapple)读取温度值的程序范例plc主程序网络1// 设置控制方式为自由口通信方式,启动接收字符中断 //     plc首次扫描     自由口通信,波特率为9600,数据位8,停止位1,无校验     初始化rcv,允许rcv,有结束符,检查空闲时间     结束符为 a     空闲时间为5ms     一次接收的最大字符为6个     启动通信口,接收完成中断     全局允许中断     接收数据ld      sm0.1movb    16#09, smb30movb    16#b0, smb87movb    16#0a, smb89movb    6, smb94atch    int_0, 23enircv     vb199, 0网络2// 检测温度送vw0 //     转换成实际温度值     从工作站编号送到输出缓冲区     检测温度送输出缓冲区ld      sm0.0movw    aiw0, vw0/i      +54, vw0movw    aiw2, vw2/i      +54, vw2movw    1, vw300movw    vw0, vw302movw    vw2, vw304网络3// 设置温度控制上限和下限//ld      sm0.0movw    +350, vw4movw    +450, vw6网络4// 检测温度低于下限,则输出加温 //ldw<    vw0, vw4a       sm0.5s       q0.0, 1网络5// 检测温度高于上限,则输出降温 //ldw>    vw0, vw6a       sm0.5r       q0.0, 1网络6//准备传送参数 //    发送字节数据,送vb99    发送检测温度数据,送vw100    发送工作站编号数据,送vw102ld      sm0.0movb    6, vb99movw    vw300, vw100movw    vw302, vw102movw    vw304, vw104网络7// 传送数据 //ld      sm0.5xmt     vb99, 0 中断程序网络1//通信口接收数据完成后的中断 //// smb86 等于16#20,表示plc收到结速符 //     收到结束符,把收到的数据传到vb400     中断有条件返回       否则继续接收ldb=    smb86, 16#20movb    vb200, vb400cretinotrcv     vb199, 0\\*******************************\\vb源程序dim x1, k1, k2dim p11, p22                              '定义变量dim aa() as byte                          '定义数组private sub command1_click()              '开始监控,定时器1有效timer1.enabled = trueend subprivate sub command2_click()              '退事程序,定时器1无效timer1.enabled = falsecls                                        '清屏unload meend subprivate sub form_load()                    '初始化timer1.enabled = false                     '定时器1无效timer1.interval = 100                      '定时器1时间为0.1stimer2.enabled = true                      '定时器2有效timer2.interval = 1000                     '定时器2时间为1spicture1.scalemode = 0                     '定义纵横坐标mscomm1.commport = 1                       '设定端口号mscomm1.settings = "9600,n,8,1"            '设定通讯波特率mscomm1.inputlen = 6                       '输入缓冲区为6个字符mscomm1.inbuffersize = 256                 '接收缓冲器大小mscomm1.outbuffersize = 256                '输出缓冲器大小mscomm1.inputmode = cominputmodebinary     '以二进制传输mscomm1.outbuffercount = 0                 '清空发送缓冲区mscomm1.inbuffercount = 0                  '清空接收缓冲区end subprivate sub timer1_timer()                                '定时器1有效,触发接收事件mscomm1.portopen = true                                   '打开端口redim aa(0 to 5)                                          '定义动态数组k1 = 0                                                    '识别plc站号,为1if k1 = 0 then mscomm1.output = "1" + chr(10) + chr(13)   '发送do while mscomm1.inbuffercount = 0                        '准备接收数据loopaa = mscomm1.input                                         '接收数据存入数组if aa(0) > 64 then goto xxx:k2 = int(aa(0) * 255 + aa(1) * 1)select case k2case 1p11 = int(aa(2) * 255 + aa(3) * 1)p22 = int(aa(4) * 255 + aa(5) * 1)case elseend selectk1 = k1 + 1if k1 > 2 then k1 = 0xxx:mscomm1.portopen = falseend subprivate sub timer2_timer()                       '绘制各中频炉的温度曲线x1 = x1 + 1                                      '时间增加为1spicture1.pset (x1, p11), vbred                   '绘制1#炉的温度曲线,为红色picture1.pset (x1, p22), vbblue                  '绘制2#炉的温度曲线,为黄色text1.text = str(p11)                            '输出1#炉温度值text2.text = str(p22)                            '输出2#炉温度值text3.text = str(x1)                              '输出监控时间end sub


网站首页 培训课程 维修指南
技术文章 家电专栏 供应信息
求购信息 培训资讯 展会信息
电脑专栏 教程下载 资料下载
常用软件 PLC教程 PLC资料
变频伺服 低压电器 维修资料
人机界面 自控仪表 工控机类
文章标题: 搜文章
中国工控资源网手机版 2012
电话:010-67577139 13811659603
培训咨询QQ:657167934 471895637 销售咨询QQ:623769457
联系邮箱:zggkzyw@163.com
 京ICP备11002135号
报时(2026-04-04 03:48:56) 流量统计