- 1、本文档共315页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* (5)Modbus主站模式:写N个位元件(%M) 下表是使用请求码15来写子站的N个位元件%M的标准格式的描述: ? 表 索引 高字节 低字节 控制表 0 01(发送/接收) 8 + 字节数(发送) 1 00(接收偏移) 07(发送偏移) 发送表 2 从@(1..247) 15(请求码) 3 写的第一个位元件的编号 4 N1 = 写的位数 ? 5 00(不发送,偏移结果) N2=[1+(N1-1)/8]写的数据字节数 ? 6 第一个字节的值 第二个字节的值 ? 7 第三个字节的值 第四个字节的值 ... ? ? ? (N2/2)+5(N2是偶数) (N2+1/2)+5(N2是奇数) 第N个字节的值2nd 字节 接收表(响应之后) ? 从@(1..247) 15(响应码) ? 被写的第一位的编号 ? 被写的位数(= N1) * (6)Modbus主站模式:写N个字元件(%MW) 下表是使用请求码16来写子站的N个字元件%MW的标准格式的描述: ? 索引号 高字节 低字节 控制表 0 01(发送/接收) 8 + (2*N)(发送长度) 1 00(接收偏移) 07(发送偏移) 发送表 2 从@(1..247) 16(请求码) 3 写的第一字元件的编号 4 N = 写的字数 5 00(不发送,偏移结果) 2*N = 写的字节数 6 写的第一个字值 7 写的第二个值 ... ? N+5 写的第N个值 接收表(响应之后) N+6 从@(1..247) 16(响应码) N+7 被写的第一字的编号 N+8 被写的字数(= N) * 7.1.4 如何用程序填写MODBUS协议的字表 本节将以实例的方式来说明如何用赋值指令填写符合上节表格要求的%MW字表。 例一:要求编写程序从11号子站读取从%MW500开始的连续10个字元件。 编程思路:1、要求读多个字元件,所以用“03或04请求码”的表格,找到相应的表格。 2、合理规划存放本字表的%MW空间(因为在一个程序中可能会有多个字表, 所以要合理规划),本例中从%MW200开始。(注意:%MW200和%MW500 在此例中完全不同的含义) 3、按照标准表格,用赋值指令对%MW200开始的字表进行赋值,如下图: * 上页中的程序只是填写了控制表和发送表,实际上在程序中我们只需要填写这两个字表,接收表不用程序填写。接收表是收到响应数据后,由系统自动完成的,但我们必须给接受表预留足够的空间。 本例中三个字表总长度L=N+6+1,N是读的字元件的个数。这个“L”将在EXCH指令中用到。 本例中,接收表收到的数据的前两个字是系统信息,如站号、请求码等。从第三个字开始才是存放从子站读取的字元件,即%MW207~%MW216存放了从够子站读到的%MW500~%MW509。 到此,我们能算出本例中控制表、发送表、接收表总共占用了%MW200~%MW216的空间,总长度为17个字。 填写了控制表和发送表,并预留了接收表的长度后,还要对整个字表用发送/接收消息-交换指令(EXCH)执行处理,如下图: * 例二:要求编写程序往11号子站的%MW10~%MW15区间写入6个字元件。 编程思路:1、找到相应的表格;2、合理规划存放本字表的%MW空间;3、按照标准表格,用赋值指令对字表进行赋值,如下图: * 上页中的程序只是填写了控制表和发送表,实际上在程序中我们只需要填写这两个字表,接收表不用程序填写。接收表是收到响应数据后,由系统自动完成的,但我们必须给接受表预留足够的空间。 本例中三个字表总长度L=N+8+1,N是写的字元件的个数。这个“L”将在EXCH指令中用到。 填写了控制表和发送表,并预留了接收表的长度后,还要对整个字表用发送/接收消息-交换指令(EXCH)执行处理,如下图: * 7.1.5 EXCH指令的用法 Twido控制器配置后可与Modbus子站设备通信,或以字符模式(ASCII)发送或接收消息。TwidoSoft为这些通信提供了下列功能:EXCH指令用于发送/接收消息,交换控制功能模块(%MSG)用于控制数据交换。 Twido控制器在处理EXCH指令时使用指定端口的配置协议。每个通信端口可被分配一个不同的协议。通过添加端口号到EXCH或%MSG功能(EXCH1, EXCH2, %MSG1, %MSG2)可以访问通信端口。另外,
文档评论(0)