yangshuai
级别: 略有小成
精华主题: 0
发帖数量: 42 个
工控威望: 201 点
下载积分: 660 分
在线时间: 66(小时)
注册时间: 2013-09-20
最后登录: 2024-11-06
查看yangshuai的 主题 / 回贴
楼主  发表于: 2019-03-05 13:04
图片:
图片:
图片:
图片:
大家好,正在学习了QJ71N-R2的通讯模块,想做一个仪表232通讯,只需要读取仪表的数据即可,本人参考手册写了PLC 的程序,(仪表目前还没有购买所以暂时用串口调试软件测试),当我用串口测试软件发送数据时,QJ71C24N-R2模块上CH1通道的SD信号灯会闪烁,说明他们之间的通讯是没问题的。两边的通讯设置也一样。( 问题:比如我通过测试软件向PLC 发送数据,通过PLC程序监控却没有接收到数据,不知道什么地方错误,请指点,PLC设置及程序如下 模块安装在0槽口 ,使用通道1端口。
[ 此帖被yangshuai在2019-03-05 14:11重新编辑 ]
枫落云端
施主,脚抬一下
级别: 略有小成

精华主题: 0
发帖数量: 341 个
工控威望: 465 点
下载积分: 1595 分
在线时间: 410(小时)
注册时间: 2017-10-10
最后登录: 2024-11-14
查看枫落云端的 主题 / 回贴
1楼  发表于: 2019-03-08 10:51
之前我也遇到过按照例子写出来的能通讯上,后来就不管了;最近用到的时候,重新再编写的时候就不行了,就算是把现场能用的程序原封不动拿过来,写到测试的PLC上就是死活不能通讯上。串口模块都确认过没有问题,也试着换过模块,都是通讯不上。各种找可能不一样的地方都找遍了,现在现场要是再增加一个串口模块,估计都没把握能成功,只能碰运气。验证了那句最简单也最困难。
枫落云端
施主,脚抬一下
级别: 略有小成

精华主题: 0
发帖数量: 341 个
工控威望: 465 点
下载积分: 1595 分
在线时间: 410(小时)
注册时间: 2017-10-10
最后登录: 2024-11-14
查看枫落云端的 主题 / 回贴
2楼  发表于: 2019-03-09 09:18
站长非常牛叉,一会我试试,估计八九不离十了,困扰了大半年,希望就是没短接串口模块的问题
枫落云端
施主,脚抬一下
级别: 略有小成

精华主题: 0
发帖数量: 341 个
工控威望: 465 点
下载积分: 1595 分
在线时间: 410(小时)
注册时间: 2017-10-10
最后登录: 2024-11-14
查看枫落云端的 主题 / 回贴
3楼  发表于: 2019-03-09 13:31
刚刚试过,串口模块4\6短接,7\8短接  跟完全不接的效果一样,只要发送端有数据发送,RD灯就会闪烁。
但是发现有一个奇怪的现象,只有当串口调试助手发送的字节累计到1024个字符时,PLC端有数据显示,感觉就是发送满1024时把串口模块的暂存溢出时才更新一次。

另外需要注意的是
QJ71C24N-R2串口模块的2针是RX,3针是TX,跟站长发的图是一致的。但跟通常的标准串口母头不一样。

以下是通常的标准母头针脚定义
RS-232端(DB9母头/孔型)引脚定义
引脚序号     2          3          5          1、4、6           7、8
信号定义    TXD     RXD      GND       内部相连       内部相连

所以按标准定义的公针串口直接插到QJ71C24N-R2母口上是不行的,必须进行2\3针交叉后才能通讯。
枫落云端
施主,脚抬一下
级别: 略有小成

精华主题: 0
发帖数量: 341 个
工控威望: 465 点
下载积分: 1595 分
在线时间: 410(小时)
注册时间: 2017-10-10
最后登录: 2024-11-14
查看枫落云端的 主题 / 回贴
4楼  发表于: 2019-03-09 16:12
已经知道为什么串口模块会缓存1024个字节才输出到PLC了,(默认接收数据计数为0,就不会指定接收数,此时可接接收1024个字符满后才会向PLC输出)
关键点在于结束符或者是接收数据计数的设置,详细可查看《Q系列串行口通信模块基础篇》串口模块的缓存存储器G164和G165这两个地址
枫落云端
施主,脚抬一下
级别: 略有小成

精华主题: 0
发帖数量: 341 个
工控威望: 465 点
下载积分: 1595 分
在线时间: 410(小时)
注册时间: 2017-10-10
最后登录: 2024-11-14
查看枫落云端的 主题 / 回贴
5楼  发表于: 2019-04-11 14:26
已经说了是串口通讯模块的缓存存储器164和165这两个地址。如果接收的数据有结束符,那就指定串口模块的缓存存储器165地址值为结束符,比如每次接收的都有一个回车符,那就PLC MOV给串口模块165地址一个0DH值。如果没有结束符,但是每次接收的数据为固定长度的字符串,比如每次接收都是10个字符,那就PLC MOV 给串口模块164地址一个0AH值。