威纶通官方论坛

触摸屏做从站,单片机做主站该怎么做啊?

  [复制链接]
发表于 2012-9-20 19:59:36 | 显示全部楼层 |阅读模式
触摸屏做从站(modbus server),单片机做主站该怎么做啊?有例子吗?有没有人做过啊?求助啊~~~~
发表于 2012-9-21 09:56:55 | 显示全部楼层
单片机需要写入modbus RTU协议,主动向外发送数据。相关应用也可以参照论坛其它贴。
 楼主| 发表于 2012-9-21 10:53:51 | 显示全部楼层
回复 2# weinview


    比如我用单片机发送“01 03 00 63 00 08 B4 12”给触摸屏要触摸屏端的8个数字输入端的数据,这8个触摸屏输入框的地址该这么设置啊?
发表于 2012-9-21 11:20:32 | 显示全部楼层
 楼主| 发表于 2012-9-21 11:23:11 | 显示全部楼层
回复 4# weinview


    发的码我知道,就是不知道触摸屏端LW地址该这么设置,能举个例吗?谢谢~
发表于 2012-9-21 11:25:10 | 显示全部楼层
“01 03 00 63 00 08 B4 12”  起始地址地位63对应HMI地址的LW63.即以LW63为首地址的8个地址。
MODBUS RTU与MODBUS SEVER地址对应关系:
0X,1X的1~9999 —— LB0~9998
如:0X0001=LB0                0X0002=LB1

3X,4X的 1~9999 —— LW0~9998
如:3X0001=LW0              3X0002=LW1

3X,4X的 10000~65535 —— RW0~55535
如:3X/4X 10000=RW0
    3X/4X 65535=RW55535
 楼主| 发表于 2012-9-21 11:47:37 | 显示全部楼层
回复 6# weinview


    我在触摸屏端设置的8个数字输入端地址设为LW63~LW70,往输入框分别输入1~8,然后给触摸屏发送01 03 00 63 00 08 B4 12,读到的却是01 03 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E4 59 ,与输入的数据不符,是哪里有问题吗?
发表于 2012-9-21 12:20:47 | 显示全部楼层
HMI工程文件:系统参数设置需要添加modbus server驱动类型。
 楼主| 发表于 2012-9-21 12:48:28 | 显示全部楼层
回复 8# weinview

我的设置是这样的:
1.jpg

2.jpg

3.jpg

返回的数据依然不对。
 楼主| 发表于 2012-9-21 15:45:14 | 显示全部楼层
原来是数据类型要转换一下……
发表于 2012-9-25 20:24:16 | 显示全部楼层
好复杂呀,看不懂。
发表于 2012-11-26 08:36:20 | 显示全部楼层
回复 4# weinview


    请问你两个问题。第一,你发的这幅图的MODBUS协议是,HMI作主站的图或者是作从站的图?
360截图20121126082220750.jpg

第二,有关地址的问题,0X1和1X1都是对应的LB0吗,3X3和4X3都是LW2吗?
发表于 2012-11-26 10:06:01 | 显示全部楼层
1、HMI可以做主站也可以做从站,主站:主动发送代码;从站:接到请求才回复,不会主动发送数据。图表中指的是modbus功能码。
2、是的。
发表于 2012-11-26 12:57:28 | 显示全部楼层
回复 10# bhbyuanyuan


    我看了你的一个帖子,你用HMI作从站,单片机作主站。你说把数据类型要转换一下,请问把什么数据转换一下,怎么转换。另外,当给HMI发数据时,HMI有回应吗?
发表于 2012-11-26 13:19:20 | 显示全部楼层
回复 13# weinview


    你好,再向你请教一些问题。
第一。这个功能码图,我看你说的意思是HMI作主站和从站都可以用,当我用PLC作主站,HMI作从站时,PLC的发送格式不是这样的。两幅图如下。
360截图20121126082220750.jpg 这是HMI的功能码。
QQ截图.jpg 这是PLC的发送格式。
问题是,我认为你说的这个功能码只能作主站,当作从站时,格式应该由主站的格式来定。
第二。对于型号,MT6070iH系列HMI可以作为PLC modbus协议的从站吗?我用这个协议发到HMI命令时,HMI会回应吗?
第三。很多其他modbs从设备的地址是十六进制,而这个地址有3X24等。当我赋地址时,是不是这个地址只用数值,不要3X,通可以过功能码来辨别是何类型?
发表于 2012-11-26 13:24:07 | 显示全部楼层
回复 15# 沙漠上的狗


    我的问题还没有问完。
第四,用PLC作从站时,我要给PLC寄存器写数据,是不是可以不要PLC回应也能把数据写到HMI?因为我发现给PLC发送数据时,PLC没有回应,似乎也没把数据写进去。
发表于 2012-11-26 16:52:35 | 显示全部楼层
1、此plc的modbus与标准modbus有些差异。格式不同,不能直接应用通讯。加注:从站只能发送“返回”。
2、HMI可以做主、亦可做从,若用上述plc的modbus,两者不能直接连接。
3、HMI的modbus地址是10进制的,所以需要将16进制转换。3x、4x、5x等地址,是由功能码不同决定的。
4、HMI本身的寄存器可以自由写入,PLC的寄存器在HMI上改变时,需要与PLC正常通讯才能修改。
发表于 2012-11-27 16:06:54 | 显示全部楼层
回复 17# weinview


    你好,关于这个问题还需向你请教几个问题。
第一:由于我要求PLC作主站,HMI作从站,而PLC作主站的MODBUS协议格式与大众不同。是不是PLC和HMI就不能直接在RS232口上通过MODBUS-RTU进行数据读和写?
第二:假如第一的问题能进行正常通讯,我用PLC作主站,HMI作从站,当我只要给HMI写数据时,我只管发送数据给HMI,不管HMI返回来的数据?
第三:关于你说的那个功能码,当HMI用作主站发送时,是不是要做宏?我认为只有宏才能体现数据格式。
第四:你说的那个功能码,当HMI用作从站接收时,它返回数据到主站。若这个主站是威纶通的HMI,是不是这个主站要通过宏才能体现这个数据格式?若这个主站是标准MODBUS的PLC,直接通过PLC接收到的数据来读取HMI的信息?若这个主站PLC不是标准的MODBUS格式,是不是就不能接收这个返回数据?
发表于 2012-11-29 09:34:10 | 显示全部楼层
1、是的
3、不需要用宏
4、只有协议格式相同,才能正常收发数据。
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

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

GMT+8, 2024-5-20 00:14

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

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