威纶通官方论坛

触摸屏输入数值器件如何使用

[复制链接]
发表于 2011-8-29 14:56:36 | 显示全部楼层 |阅读模式
QQ截图20110829124303.jpg 我定义了rtu通讯。输入器件读取写入地址都是6x01,请问以下现象如何解释:1.我在触摸屏上输入了4,然后串口调试软件什么都不输入,此时输入器件上显示0。
2.我在触摸屏上输入20,然后看到串口软件显示01 06 00 15 00 14 98 01 ,接着我输入01 06 00 15 00 14 98 01 ,这时输入器件显示20.
3.我在触摸屏上输入30,然后看到串口软件显示01 06 00 15 00 14 98 01 ,接着我输入00 00 00 00 00 00 00 00(就是一组错误码),这时输入器件显示30.
通过以上我都不知道,我哪次输入被下位机接收对了。我分不清了。尤其是2,3种现象。根本无法区别。
再说,我看到威纶通下载的资料上返回值是这样的。发送01 06 00 15 00 14  CRC ,返回的应该是01 06 00 15 14 00 CRC(数据部分调换了高地位),这个不知道对不对。    可是我看到很多modbus 协议上 发送01 06 00 15 00 14   返回01 06 00 15 00 14 发送与返回一致。到底谁错了呢?
发表于 2011-8-30 09:13:05 | 显示全部楼层
我查了手册,假如按照你“输入器件读取写入地址都是6x01”的话,那么,串口软件显示01 06 。。。。。是不错的。你现在的问题是:为什么串口软件的显示和实际的通讯不同步!我们先分析你收到的数据:01H是地址,06H是功能码,0015H应该是寄存器地址,0014H是数值,它的十进制值是:20D,后面的应该是CRC。你看,现在不用我说,你也许就会自己发现问题了吧?
    另外,你的PLC类型选的可能有问题,请看我过去的贴子。如果还是不行,请再联系,祝你成功!
发表于 2011-8-30 15:38:16 | 显示全部楼层
你的地址弄错了,地址改成22.
 楼主| 发表于 2011-8-31 13:30:06 | 显示全部楼层
我改了6x22.然后发现个问题,输入器件输入了一个数值,不管返回值错误与否,只要是01 06开头的,触摸屏就认为是对的。如发送01 06 00 13 00 64 79 E4 返回01 06 00 00 00 00 触摸屏也不弹出通讯失败。请问如何解决啊。qq761153454
发表于 2011-9-1 09:44:59 | 显示全部楼层
我请问你:
1。你要写入的对象(PLC、模块、仪表)的寄存器地址是多少?这个问题你始终没说清楚!
2。你要写入的对象支持什么协议?
3。你要写入的对象到底是什么?是PLC、模块、仪表?
4。你要写入的数据类型?
 楼主| 发表于 2011-9-1 10:18:31 | 显示全部楼层
我请问你:
1。你要写入的对象(PLC、模块、仪表)的寄存器地址是多少?这个问题你始终没说清楚!

回答:我是触摸屏和单片机通讯。触摸屏发送,然后51单片机接收。我要写入单片机的地址是0x265841这个地址
2。你要写入的对象支持什么协议?
回答:modbus rtu
3你要写入的对象到底是什么?是PLC、模块、仪表?
回答:51单片机
4。你要写入的数据类型?
回答:整数
发表于 2011-9-1 12:52:45 | 显示全部楼层
首先:还是你的地址设置有问题,MODBUS的寄存器地址提供的是:一个高八位和一个低八位,寻址空间0--65535。虽然,在MODBUS有6码制寄存器地址编址,形如:40xxxx,实际上xxxx是寻址寄存器。所以,如果你直接在MODBUS指令里写入地址0x265841,肯定不行。你只能在MODBUS指令里写入一个规定地址,如0001H,然后,在你的51单片里通过嵌入码,指定读出0x265841这个地址里的数据,然后,发出。所以,你现在告诉我“我要写入单片机的地址是0x265841这个地址”这没用,你要指出在MODBUS指令里的写入地址才行。另外,你把PLC设置为:MODBUS RTU,那么,它的实际操作的地址讲偏移一位,这一点请你注意。
针对你说的:通讯结果不是你预想的样子,有点莫名其妙的现象。我建议你:用串口调试软件在51单片机和触摸屏之间搭接监听他们之间的通信数据,打印分析,就能发现问题。
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

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

GMT+8, 2024-5-20 04:19

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

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