威纶通官方论坛

触摸屏如何读取一个线圈的输出状态

[复制链接]
发表于 2011-8-25 08:31:20 | 显示全部楼层 |阅读模式
modbus上只能读取一组(注意是一组而不是一个)线圈的输出输入状态。我触摸屏用了RTU定义了2个指示灯(0x01.0x02),现在通过串口看到触摸屏不断发送的是01 01 00 00 00 10 3D C6 . 这是从地址0读取16个位的状态 ,懂的人会懂的。接着发送 01 01  02 01 00 b8 6c 点亮指示灯1 ,此时指示灯2必然关闭的。串口发送01 01  02  02 00 b8 9c点亮指示灯2 ,此时指示灯1必然关闭。结果就是我2个指示灯只能交替亮灭。我想知道,如何读取一个线圈的状态呢?就是串口发送01 01 00 00 00 01 CRC      .这样就能避免上述了。
 楼主| 发表于 2011-8-25 08:32:43 | 显示全部楼层
回复 1# jinzihan


    就是说,我点亮指示灯1的时候,影响了指示灯2.如何能不影响呢
发表于 2011-8-25 10:49:43 | 显示全部楼层
接着返回 01 01  02 01 00 b8 6c
这个是下位机返回的,代表最低的一个位为on其他的都为off,写单个线圈用的是05。
modbus协议每次读取都是读取16个位的。
 楼主| 发表于 2011-8-25 15:33:04 | 显示全部楼层
01 01  02 01 00 b8 6c

这个就有问题。01 为读取, 02为2个数据,01 00 具体的数据。这个就是把其中一个灯置1.可是另外一个你必然会置0.因为你的数据时01 00变成2进制,你知道的。
但是我想出一个好办法。现在就是说控制1个灯的亮灭而不会影响另外一个的亮灭。QQ761153454.希望交流
发表于 2011-8-25 15:53:34 | 显示全部楼层
RTU  发送命令,然后server再返回01 01  02 01 00 b8 6c
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

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

GMT+8, 2025-8-6 04:40

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

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