<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > plc自由口編程處理

plc自由口編程處理

作者: 時(shí)間:2016-12-16 來(lái)源:網(wǎng)絡(luò ) 收藏
plc做主站的時(shí)候,不管PLC連接的是單從站還是多從站,主站程序都應該考慮到從站會(huì )發(fā)生故障,從站故障有兩種,一種是有故障,但不影響和主站通訊,另一種是有故障,不能和主站通訊,例如從站掉電,通訊線(xiàn)故障或者從站本身故障導致的不能和主站通訊。
對于后者,主站在發(fā)送后,從站是不會(huì )回復數據的,主站不能等,而應該結束RCV接收狀態(tài),然后發(fā)送,那么為什么和如何結束RCV接收狀態(tài)呢?
一 為什么要結束RCV接收狀態(tài)呢?
發(fā)送指令XMT將數據發(fā)送出去就完事,而接收RCV不一樣,一次完整成功的RCV過(guò)程需要以下步驟:
1 使能位:SM87.7=1/SM187.7=1,執行RCV的時(shí)候會(huì )檢查該位
2 執行RCV
3 等待消息起始條件
4 接收信息
5 等待消息結束條件
6 退出接收狀態(tài)
RCV指令啟動(dòng)后并不一定就接收消息,如果消息起始條件沒(méi)有達到,那就一直處于等待接收的狀態(tài);
如果消息始終沒(méi)有開(kāi)始或者結束,通信口就一直處于接收狀態(tài)。這時(shí)如果嘗試執行XMT指令,就不會(huì )發(fā)送任何消息。
所以要結束接收RCV接收狀態(tài)后才能執行XMT。
二:如何結束RCV接收狀態(tài)?
手冊上給出6種結束條件:
1.結束字符檢測
2.字符間計時(shí)器
3.信息計時(shí)器
4.最大字符計數
5.校驗錯誤
6.用戶(hù)終止
方法1:前4種條件在從站發(fā)生通訊故障后就失效了,必須要配合用戶(hù)終止
一般執行XMT后,在發(fā)送完成中斷里執行RCV,同時(shí)啟動(dòng)定時(shí)中斷或者啟動(dòng)定時(shí)器或者執行開(kāi)始間隔時(shí)間BITIM,計時(shí)時(shí)間到復位使能位SM87.7/SM187.7,同時(shí)執行RCV,這樣結束RCV指令,比如定時(shí)中斷里發(fā)送:
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毫秒后自動(dòng)結束接收狀態(tài)。
如果用的是字符中斷方式接收信息,那么將中斷分離后即可發(fā)送
DTCH 8
XMT VB100, 0
用結束字符作為結束條件的時(shí)候,如果與設備的通信斷了,CPU就會(huì )停滯在接受狀態(tài),之后的發(fā)送也不成功了,通訊也徹底斷了。
后來(lái)別人教我在發(fā)送前面用復位SMB87.7結束發(fā)送就好了。
自由口用RCV接收,接收到的數據總是一部分,不全,反復檢查做實(shí)驗,才發(fā)現原來(lái)是結束的定時(shí)器時(shí)間設短了,導致數據沒(méi)有接收完,RCV就結束了,增大了時(shí)間,一切就OK了。
剛做自由口編程時(shí),一下載下去,編程軟件就無(wú)法和CPU通信了,后來(lái)打到停止狀態(tài),CPU才恢復PPI,可以正常監控,下載了。


關(guān)鍵詞: plc自由口編程處

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>