VB与PLC通信程序(欧姆龙PLC)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VB与PLC通信程序(欧姆龙PLC)

分类:| 转自:原文地址被1人转藏+放进我的宝盒2010-9-2 21:45:46

VB与PLC通信程序(欧姆龙PLC)

关于VB的MSCOMM控件可参考相关资料。通信程序摘要如下:

(1)初始化程序

mport=2 ’选择COM2

Mscomm1.Settings=”9600,N,8,2”’设置通信参数

Mscomm1.Inputlen=0 ’读入接收缓冲区全部字符

Mscomm1.OutbufferSize=256 ’设置发送缓冲区大小

Mscomm1.InbufferSize=512 ’设置接收缓冲区大小

Mscomm1.PortOpen=True ’打开COM2

(2)发送命令程序

比如读取节点号03的PLC中IR000到IR009的内容,并放到tag1字符串变量中,此时有:

Dim Command, node, begin, number as string

Dim Answerlen as integer

node=”03”’节点号

Command=”RR”’命令为读IR区

begin=”0000”’从IR000开始

number=10 ’读取长度

Answerlen=51 ’计算接收字符串长度

进行命令发送和接收应答处理:

Dim FCS, I as integer

Dim s ,f as string

s=”@”+node+Commad+begin+number

FCS=0

For i=1 to Len(s)

FCS=FCS xor Asc(Mid$(s,i,1) ) ’帧校验码FCS

Next i

f=Hex$(FCS)

If Len(f)=1 Then f=”0”+f

Commfrm.MSComm1.Output=s + f + ”*”+ CHR$(13) ’命令帧发送

Do

Dummy=DoEvents()

Loop Untill Commfrm.MSComm1.InbufferCount >= Answerlen ’等待应答帧

Do tag1= Commfrm.MSComm1.Input

Loop Untill Commfrm.MSComm1.InbufferCount=0 ’读完应答帧

上述程序具有相当的通用性,对于其它设备不同的只是各自的数据帧格式,因而只需做相应少量修改即可。

相关文档
最新文档