- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用VB写的程序与施耐德PLC(PLC型号BMXP342020)实现以太网通信.
用VB写的程序与施耐德PLC(PLC型号:BMX P34 2020)实现以太网通信。调用winsock控件,采用modbus协议。
已经顺利实现读线圈、写线圈、读寄存器整数、读寄存器浮点数。(唯独没有写寄存器成功,原因在下)
因为有个很奇怪的问题,在所有的读写过程中,不管是地址还是数据内容,每个字节都不可以超过H80(十六进制数80)。
比如:向字寄存器%MW42 写数据,该寄存器存的是整数,数据长度为一个字(也就是16位二进制,4位16进制字符):
运行结果如下:
向寄存器%MW42(其地址为十六进制数002A)写入字符H000F,运行结果如下:
%MW42数据类型如下:整数
1、VB里的发送数据程序:
Private Sub Command1_Click()
Dim str2(12) As Byte
str2(0) = H0 交换识别号高字节,通常为 0
str2(1) = H0 交换识别号低字节,通常为 0
str2(2) = H0 协议识别号高字节,为 0
str2(3) = H0 协议识别号低字节,为 0
str2(4) = H0 字节长度高字节
str2(5) = H6 字节长度低字节
str2(6) = HFF 单元识别号,确省为 255
str2(7) = H6 modbus功能码,06为预置单寄存器
str2(8) = H0 寄存器的起始地址高字节
str2(9) = H2A 寄存器的起始地址低字节
str2(10) = H0 数据内容高字节
str2(11) = HF 数据内容低字节
Dim bStrQ As String
Dim Q As Integer
For Q = 0 To 11
bStrQ = bStrQ Chr(str2(Q))
Next
Winsock1.SendData bStrQ
Exit Sub
End Sub
1、运行之前
运行之后
一切正常。
二、向寄存器%MW42写入字符H0080(也就是十进制数128),运行结果如下:
运行前
1、VB里的发送数据程序:
Private Sub Command1_Click()
Dim str2(12) As Byte
str2(0) = H0 交换识别号高字节,通常为 0
str2(1) = H0 交换识别号低字节,通常为 0
str2(2) = H0 协议识别号高字节,为 0
str2(3) = H0 协议识别号低字节,为 0
str2(4) = H0 字节长度高字节
str2(5) = H6 字节长度低字节
str2(6) = HFF 单元识别号,确省为 255
str2(7) = H6 modbus功能码,06为预置单寄存器
str2(8) = H0 寄存器的起始地址高字节
str2(9) = H2A 寄存器的起始地址低字节
str2(10) = H0 数据内容高字节
str2(11) = H80 数据内容低字节
Dim bStrQ As String
Dim Q As Integer
For Q = 0 To 11
bStrQ = bStrQ Chr(str2(Q))
Next
Winsock1.SendData bStrQ
Exit Sub
End Sub
2、运行之后
注意:接下来是问题的开始!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
三、向寄存器%MW42写入字符H0081,也就是十进制129运行结果如下:
运行前
1、VB里的发送数据程序:
Private Sub Command1_Click()
Dim str2(12) As Byte
str2(0) = H0 交换识别号高字节,通常为 0
str2(1) = H0 交换识别号低字节,通常为 0
str2(2) = H0 协议识别号高字节,为 0
str2(3) = H0 协议识别号低字节,为 0
str2(4) = H0 字节长度高字节
str2(5) = H6 字节长度低字节
str2(6) = HFF 单元识别号,确省为 255
str2(7) = H6 modbus功能码,06为预置单寄存器
str2(8
您可能关注的文档
最近下载
- DL∕T 5168-2023表A.5 分部工程质量控制资料核查记录.pdf VIP
- 大班数学活动《8的分解组成》PPT课件.ppt
- 【一模】2025年广东省2025届高三高考模拟测试 (一) 数学试卷(含官方答案及解析 ).docx
- 13S201 室外消火栓及消防水鹤安装.docx VIP
- 主题班会课件-师恩难忘-学子感恩-致敬恩师主题班会.ppt
- GB50327-2001住宅装饰装修工程施工规范.docx
- World怎么在参考文献后面添加CrossRef.pdf VIP
- 江苏省房屋建筑和市政基础设施工程标准施工招标文件(适用于资格后审).doc VIP
- 八下英语U3词性变化.docx
- 《机械原理》期末考试试题及答案.docx
文档评论(0)