您的位置 首页 观点

plc自在口编程处理

plc做主站的时候,不管PLC连接的是单从站还是多从站,主站程序都应该考虑到从站会发生故障,从站故障有两种,一种是有故障,但不影响和主站

plc做主站的时分,不论PLC衔接的是单从站仍是多从站,主站程序都应该考虑到从站会产生毛病,从站毛病有两种,一种是有毛病,但不影响和主站通讯,另一种是有毛病,不能和主站通讯,例如从站掉电,通讯线毛病或许从站自身毛病导致的不能和主站通讯。
关于后者,主站在发送后,从站是不会回复数据的,主站不能等,而应该完毕RCV接纳状况,然后发送,那么为什么和怎么完毕RCV接纳状况呢?
一 为什么要完毕RCV接纳状况呢?
发送指令XMT将数据发送出去就完事,而接纳RCV不一样,一次完好成功的RCV进程需求以下过程:
1 使能位:SM87.7=1/SM187.7=1,履行RCV的时分会查看该位
2 履行RCV
3 等候音讯开端条件
4 接纳信息
5 等候音讯完毕条件
6 退出接纳状况
RCV指令发动后并不一定就接纳音讯,假如音讯开端条件没有到达,那就一向处于等候接纳的状况;
假如音讯一向没有开端或许完毕,通讯口就一向处于接纳状况。这时假如测验履行XMT指令,就不会发送任何音讯。
所以要完毕接纳RCV接纳状况后才干履行XMT。
二:怎么完毕RCV接纳状况?
手册上给出6种完毕条件:
1.完毕字符检测
2.字符间计时器
3.信息计时器
4.最大字符计数
5.校验过错
6.用户中止
办法1:前4种条件在从站产生通讯毛病后就失效了,必需要合作用户中止
一般履行XMT后,在发送完结中止里履行RCV,一起发动守时中止或许发动守时器或许履行开端间隔时刻BITIM,计时时刻到复位使能位SM87.7/SM187.7,一起履行RCV,这样完毕RCV指令,比方守时中止里发送:
LD SM0.0
R SM87.7, 1
RCV VB0, 0
S SM87.7, 1
LD SM0.0
DTCH 10
LD SM0.0
XMT VB100, 0
办法2:设置:SMB87=16#9C, SMW90/SMW190=0,SMW92/SMW192=x
履行RCV指令x毫秒后主动完毕接纳状况。
假如用的是字符中止方法接纳信息,那么将中止别离后即可发送
DTCH 8
XMT VB100, 0
用完毕字符作为完毕条件的时分,假如与设备的通讯断了,CPU就会阻滞在承受状况,之后的发送也不成功了,通讯也完全断了。
后来他人教我在发送前面用复位SMB87.7完毕发送就好了。
自在口用RCV接纳,接纳到的数据总是一部分,不全,重复查看做试验,才发现原来是完毕的守时器时刻设短了,导致数据没有接纳完,RCV就完毕了,增大了时刻,全部就OK了。
刚做自在口编程时,一下载下去,编程软件就无法和CPU通讯了,后来打到中止状况,CPU才康复PPI,能够正常监控,下载了。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/guandian/231470.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部