登录
首页 工控软件 工控软件
回帖 发帖
正文

主题:组态王6.55 modbus通信问题

点击:3858 回复:12

最近用51单片机和组态王做了一个modbus通信系统
描述:单片机用c语言开发了底层modbus协议,经串口与组态王通信
     组态王在设备一栏选择的是莫迪康的modbus RTU
     组态王部分,我用虚拟串口工具虚拟了两个直连口,分别是COM2和COM3,串口调试软件设为COM3,组态王的设备一
     栏设为COM2。在组态王里添加了2个按钮,1个按下时置位0x00001,另一个按钮按下时复位0x00001.
问题:单片机部分用串口调试软件测试过了,可以正常收发数据,基本可以排除单片机的问题了
     组态王部分,按下按钮,第一次串口工具收到的数据是01 05 00 00 00 00 8C 3A(置位线圈0x00001);但是再按
     ,收到的是01 01 00 00 00 00 FD CA(读取线圈0x00001),在信息窗口里一直显示“[I]运行系统:尝试与设备“单片机”通信失败”不知道怎么回事,请高手解答,谢谢!
附件 01.jpg
附件 02.jpg
附件 03.jpg
附件 04.jpg
附件 05.jpg
附件 06.jpg
附件 07.jpg
附件 08.jpg
16-04-08 11:34
读取线圈不是按下去的效果,是modbus轮询的报文.
你说了三个意思,单片机,虚拟端口和组态王.发生是三者关系?
轮询的55ms减慢点.
最后修改:2016/4/8 11:59:23
16-04-08 11:52
附件 untitled1.jpg
首先这条指令是给0x00001复位的命令!
附件 untitled2.jpg
这个是组态王尝试通信恢复的命令,你单片机必须安装MODBUS RTU协议予以回复!本身你变量类型就是可读写的bit类型变量,既然可读可写,那么组态王肯定会安装采集周期进行读的
且读操作一般不是你可以控制的,组态王会按照采集周期执行的,建议采集周期设置为100ms以上!
16-04-08 12:03
试试把变量类型修改为只写变量,当类型为只写变量的时候,请把采集周期设置为0!然后再试试!
16-04-08 12:05
附件 untitled1.jpg
附件 untitled2.jpg
附件 untitled3.jpg
附件 untitled4.jpg
附件 untitled5.jpg
附件 untitled6.jpg
16-04-08 12:15
测试工程给你
附件:
[本地下载]
16-04-08 12:17
what's the matter?
最后修改:2016/4/8 19:09:07
16-04-08 18:51
谢谢回复,我单片机硬件已经做好了,主要是上位机测试部分出了点问题
我用组态王做上位机,下位机想用软件的方式来实现,于是就用虚拟串口软件(电脑上不同的软件使用同一个串口会产生冲突),将COM2和COM3直连,再用串口调试工具收发COM3数据
16-04-08 19:03
今天测试了一下你给的程序,先用虚拟串口软件将COM2和COM3相连,然后将组态王里设置为COM2,modbus slaver设置为COM3,用commMonitor监控组态王进程 Touchvew.exe COM2,出现了连续回传的结果。
有一点不明白的是:我如果用串口调试工具检测,检测到的却是另一种结果,COM2口不停地开关,感觉和下位机的响应也有关系,能否帮忙分析下?
附件 组态王截屏1.jpg
附件 组态王截屏2.jpg
16-04-08 19:07

引用 huyafeng 在 2016/4/8 19:07:40 发言【内容省略】

跟那个串口调试助手有关系?!
上位机组态王问题解决后,你可以和你单片机链接了啊!
16-04-08 21:53

上一页下一页

工控新闻

更多新闻资讯