威纶通官方论坛

触摸屏与设备通讯时,什么时候发送命令从设备中读取数据?

[复制链接]
发表于 2012-8-23 10:19:09 | 显示全部楼层 |阅读模式
我用AVR128与触摸屏利用MODBUS RTU通讯,触摸屏在某个窗口中建立一个位状态切换开关,读取和写入地址均是我所用的外设MODBUS RTU(AVR128)的3x_bit。

     我不知道触摸屏什么时候向外设发送命令读取外设的数据?是在打开该窗口时吗?因为我暂时还没有为avr128写底层协议,打开该窗口时,会提示PLC no reponse ,这个我能理解,但是触摸屏应该已经向MODBUS 发送读取命令了吧?为什么avr128串口没有接收到数据呢?

     看MODBUS协议我始终是看不太明白,希望通过avr128串口接收到的数据对MODBUS通讯协议有个直观的理解。
发表于 2012-8-23 11:25:55 | 显示全部楼层
若HMI利用MODBUS RTU 与下面设备通讯,HMI中若设置了读取RTU设备的地址,则在窗口打开时,开始发送命令读取RTU设备的数据。如RTU设备没有返回相应标准代码,则没有正常通讯上,HMI提示“plc no response”,数据也不会写入到RTU设备。
   若想监看modbus rtu 发送的代码,可以利用“串口调试工具”经RS232HMI连接PC。PC上运行串口调试工具。
   以测试modbus 0x03功能码(读)为例:HMI画面中可以放置三个数值输入元件“4x20、4x21、4x22”。HMI会主动发送代码:01 03 00 13 00 03 F4 0E,电脑上运行串口调试工具,串口调试就会接收到:01 03 00 13 00 03 F4 0E;
以modbus 0x10 功能码(写)为例:经串口调试工具发送:01 10  00 13 00 03 06 00 0A 07 D0 00 1E 0F 9E.
HMI上则会显示 4x20 的数据为10;4x21=2000;4x22=30.

读03码

读03码

写10码

写10码
 楼主| 发表于 2012-8-24 11:12:40 | 显示全部楼层
明白了 这个表格的表示方法我开始不太理解 看了你的说明才知道 下一栏是上一栏的继续,还以为是两种情况呢 谢谢啦
 楼主| 发表于 2012-8-25 10:16:01 | 显示全部楼层
我在窗口上设置了三个数值显示元件 地址分别是MODBUS RTU的 5x_20 5x_21 5x_22 ,打开窗口后触摸屏一直发送命令,需要读取外设的数据,我通过PC串口发送了 01 03 06 00 0A 07 D0 00 1E 39 F1 作为返回数据,但还是“PLC no Response",我又通过PC串口发送了 01 10 00 13 00 03 06 00 0A 07 D0 00 1E 0F 9E,强制写入,也不行,触摸屏一直在发送命令数据到串口
发表于 2014-6-27 19:31:10 | 显示全部楼层
回复 2# gyw


    我用的威纶通的屏TK8070iH,差不多就是按你的思路想的,但是我用串口调试工具没有检测到任何数据?这种情况是为什么?

TK8070iH 只有一个串口,一个网口,一个USB口。
发表于 2014-6-30 09:48:31 | 显示全部楼层
首先检查串口调试工具中的参数和电脑设备管理器中的端口的参数是否一致,其次检查发送的代码是否正确,还有就是通讯线是否正确。
发表于 2014-9-26 17:38:59 | 显示全部楼层
@4#....我通过PC串口发送了 01 03 06 00 0A 07 D0 00 1E 39 F1 作为返回数据,但还是“PLC no Response",....

将06改为02 即OK了。。。
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

Archiver|小黑屋|威纶通官网 ( 粤ICP备06054553号 )

GMT+8, 2024-11-29 09:53

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

快速回复 返回顶部 返回列表