网站大量收购独家精品文档,联系QQ:2885784924

用VB写的程序与施耐德PLC(PLC型号BMXP342020)实现以太网通信..docVIP

用VB写的程序与施耐德PLC(PLC型号BMXP342020)实现以太网通信..doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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

文档评论(0)

sd7f8dgh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档