勤工俭学
deep throat
级别: 论坛先锋
精华主题: 0
发帖数量: 188 个
工控威望: 1567 点
下载积分: 5955 分
在线时间: 120(小时)
注册时间: 2016-03-10
最后登录: 2024-09-27
查看勤工俭学的 主题 / 回贴
楼主  发表于: 2020-03-22 12:25
rs2指令,通道2,参数设置如下图。


plc与电脑通信,数据发送正常,接收也正常。
但是如果电脑没有发送数据的话,plc通信超时标志位不会接通。哪怕是一顿午饭的时间,依然没有通信超时。
中午饭后发现没有通信超时,我尝试从电脑发送一段数据给plc,plc接收了,完成一次发送接收。
我查看手册,手册里部分内容如下。
“当接收数据中途中断时,从这一刻开始,如果经过了超时时间设定中的时间,却依然没有收到下一个数据,则通信超时判定标志位置ON。”
是不是数据发送结束后,并没有进入”数据接收“的状态,要有数据或着其他什么东西来触发接收。
所以没有搞明白为什么通信超时不起作用。
先谢谢各位大神了。
ntbigcg
级别: 探索解密
精华主题: 0
发帖数量: 132 个
工控威望: 170 点
下载积分: 52725 分
在线时间: 58(小时)
注册时间: 2020-02-22
最后登录: 2024-12-26
查看ntbigcg的 主题 / 回贴
1楼  发表于: 2020-03-23 07:44
这个有点复杂了,1、你PLC里用的是什么方式发送数据的,用RS?如果用了,就会一直在发送接收,除非指令不发送接收。你如果加了超时判定标志断开了发送接收,那你得有程序来恢复发送接收。2、如果你没用RS,而是用上位机,那上位机程序里判断超时设置后有没有用恢复通讯功能?还有要检查上位机的每次发送接收之间有没有加延时防止通讯来不及反应导致的通讯错误,通讯错误就会发生超时。
从问题来看,你是用了RS的,你用RS发送的时候与上位机怎样协商的,是不是需要上位机回发数据,如果有回发,你PLC里有没有等回发结束再给上位机发送,如果没有加这个判断,很容易发生错误的,一发生错误通讯就死掉了。
[ 此帖被ntbigcg在2020-03-23 07:49重新编辑 ]
勤工俭学
deep throat
级别: 论坛先锋
精华主题: 0
发帖数量: 188 个
工控威望: 1567 点
下载积分: 5955 分
在线时间: 120(小时)
注册时间: 2016-03-10
最后登录: 2024-09-27
查看勤工俭学的 主题 / 回贴
2楼  发表于: 2020-03-23 09:42
引用
引用第1楼ntbigcg于2020-03-23 07:44发表的  :
这个有点复杂了,1、你PLC里用的是什么方式发送数据的,用RS?如果用了,就会一直在发送接收,除非指令不发送接收。你如果加了超时判定标志断开了发送接收,那你得有程序来恢复发送接收。2、如果你没用RS,而是用上位机,那上位机程序里判断超时设置后有没有用恢复通讯功能?还有要检查上位机的每次发送接收之间有没有加延时防止通讯来不及反应导致的通讯错误,通讯错误就会发生超时。
从问题来看,你是用了RS的,你用RS发送的时候与上位机怎样协商的,是不是需要上位机回发数据,如果有回发,你PLC里有没有等回发结束再给上位机发送,如果没有加这个判断,很容易发生错误的,一发生错误通讯就死掉了。

先谢谢你的回帖~
用的是rs2指令和电脑进行通信的。现在是plc送出数据后,等电脑回发数据,这样完成一次简单的通信。昨天发现电脑没有回发数据,plc这边就一直等待电脑回发,没有通信超时。我想是不是某个参数没有设置好,造成通信超时没有起作用。
无良!!
有事加我头像微信
级别: 略有小成
精华主题: 0
发帖数量: 138 个
工控威望: 248 点
下载积分: 7751 分
在线时间: 117(小时)
注册时间: 2020-01-15
最后登录: 2024-12-23
查看无良!!的 主题 / 回贴
3楼  发表于: 2020-03-23 12:11
没用过三菱。。。
PLC发出数据而没有接受数据,我认为有两种情况
1.你发送的格式,类似报文那样,校验之类的对不对?
2.PLC发给上位机,上位机有没有收到数据会自动返回数据给下位机,还是说要手动用上位机给下位机发送一串数据,这样才能形成一个发送与接受的过程
有事加我头像微信
勤工俭学
deep throat
级别: 论坛先锋
精华主题: 0
发帖数量: 188 个
工控威望: 1567 点
下载积分: 5955 分
在线时间: 120(小时)
注册时间: 2016-03-10
最后登录: 2024-09-27
查看勤工俭学的 主题 / 回贴
4楼  发表于: 2020-03-23 15:00
引用
引用第3楼无良!!于2020-03-23 12:11发表的  :
没用过三菱。。。
PLC发出数据而没有接受数据,我认为有两种情况
1.你发送的格式,类似报文那样,校验之类的对不对?
2.PLC发给上位机,上位机有没有收到数据会自动返回数据给下位机,还是说要手动用上位机给下位机发送一串数据,这样才能形成一个发送与接受的过程

谢谢啦~
报文格式以及校验是没有问题的。现在主要是plc这边的通信超时功能不起作用。标志位m8429没有动作。
无良!!
有事加我头像微信
级别: 略有小成
精华主题: 0
发帖数量: 138 个
工控威望: 248 点
下载积分: 7751 分
在线时间: 117(小时)
注册时间: 2020-01-15
最后登录: 2024-12-23
查看无良!!的 主题 / 回贴
5楼  发表于: 2020-03-24 21:34
这个通讯超时功能,是不是用在只发不收时的情况?
你完成一次通讯,说明没有错误
有事加我头像微信
勤工俭学
deep throat
级别: 论坛先锋
精华主题: 0
发帖数量: 188 个
工控威望: 1567 点
下载积分: 5955 分
在线时间: 120(小时)
注册时间: 2016-03-10
最后登录: 2024-09-27
查看勤工俭学的 主题 / 回贴
6楼  发表于: 2020-03-30 18:35
引用
引用第5楼无良!!于2020-03-24 21:34发表的  :
这个通讯超时功能,是不是用在只发不收时的情况?
你完成一次通讯,说明没有错误

是的,只用在只发不收的情况。我是在无意中发现这个情况。
勤工俭学
deep throat
级别: 论坛先锋
精华主题: 0
发帖数量: 188 个
工控威望: 1567 点
下载积分: 5955 分
在线时间: 120(小时)
注册时间: 2016-03-10
最后登录: 2024-09-27
查看勤工俭学的 主题 / 回贴
7楼  发表于: 2020-03-30 18:42
我仔细看了手册,在rs2指令发送数据后,不会马上进入数据接收状态。
手册里有一段话,如下。
执行了RS2指令后, 变为等待接收状态。 从连接的设备接收数据, 当接收数据结束时, 接收结束标志位置ON。
在等待接收状态下接收到数据后, 数据的接收就开始了。
数据接收开始后, 以中断方式保存接收数据, 而与运算周期无关。
但是, 当在通信格式中指定了报头时, 连续接收到报头中设定的代码时, 接收才开始。 除报头以外的接收数据被保存。
这段话说明有在数据接收之前有一个状态,是等待接收状态。这个等待状态需要接收到数据后才会切换到接收中的状态。所以在等待接收状态中是不会产生通信超时的。通信超时产生于数据接收的过程中。
不知道我的理解对不对。