找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
用VB的MSCOMM控件和S7-200 PLC做modbus通信这种方式.
个人认为还不错,调试相当方便。VB和PLC均可以收发数据,而且我发的数据较多,超过1000多字节了。
1、注意PLC方面modbus的起始地址。
2、VB方面注意MSCOMM控件部分的程序。
具体的问题,可以通过邮箱联系。
VB与PLC部分的程序已经发至你的邮箱了
2 用VB的MSCOMM控件和S7-200 PLC做自由口通信这种方式
我举个简单的例子:
PLC程序:
LD SM0.1
MOVB 9, SMB30
MOVB 2, VB100
LD SM0.0
MOVB IB0, VB101
MOVB IB1, VB102
LD SM0.5
EU
XMT VB100, 0 每秒将IW0上传一次。
VB程序:
第一步:添加MSComm控件
在工具栏右键-部件-添加Microsoft Comm Control 6.0
然后双击MSComm
第二步:添加2个Text Box
Text Box用来显示PLC发给电脑的数据
Text Box1显示IB0
Text Box2显示IB1
第三步:写代码
Option Explicit
Dim p() As Byte
Private Sub Form_Load()
MSComm1.PortOpen = True
MSComm1.InputMode = 1
MSComm1.RThreshold = 2
End Sub
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
p = MSComm1.Input
Text1 = p(0)
Text2 = p(1)
End Select
End Sub
这是最简单的通讯,如果PLC发送的数据很多,有起始字符结束字符,那就要在程序里再判断
如果VB在接收数据后,再发送数据给PLC,那还要做发送程序
如果VB做主,PLC做从,那程序又复杂一点。
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!