siemens x
PLC

plc自由口編程處理

2025China.cn   2015年02月03日

  PLC做主站的時(shí)候,不管PLC連接的是單從站還是多從站,主站程序都應(yīng)該考慮到從站會(huì)發(fā)生故障,從站故障有兩種,一種是有故障,但不影響和主站通訊,另一種是有故障,不能和主站通訊,例如從站掉電,通訊線故障或者從站本身故障導(dǎo)致的不能和主站通訊。

  對(duì)于后者,主站在發(fā)送后,從站是不會(huì)回復(fù)數(shù)據(jù)的,主站不能等,而應(yīng)該結(jié)束RCV接收狀態(tài),然后發(fā)送,那么為什么和如何結(jié)束RCV接收狀態(tài)呢?

  一 為什么要結(jié)束RCV接收狀態(tài)呢?

  發(fā)送指令XMT將數(shù)據(jù)發(fā)送出去就完事,而接收RCV不一樣,一次完整成功的RCV過(guò)程需要以下步驟:

  1 使能位:SM87.7=1/SM187.7=1,執(zhí)行RCV的時(shí)候會(huì)檢查該位

  2 執(zhí)行RCV

  3 等待消息起始條件

  4 接收信息

  5 等待消息結(jié)束條件

  6 退出接收狀態(tài)

  RCV指令啟動(dòng)后并不一定就接收消息,如果消息起始條件沒(méi)有達(dá)到,那就一直處于等待接收的狀態(tài);

  如果消息始終沒(méi)有開(kāi)始或者結(jié)束,通信口就一直處于接收狀態(tài)。這時(shí)如果嘗試執(zhí)行XMT指令,就不會(huì)發(fā)送任何消息。

  所以要結(jié)束接收RCV接收狀態(tài)后才能執(zhí)行XMT。

  二:如何結(jié)束RCV接收狀態(tài)?

  手冊(cè)上給出6種結(jié)束條件:

  1.結(jié)束字符檢測(cè)

  2.字符間計(jì)時(shí)器

  3.信息計(jì)時(shí)器

  4.最大字符計(jì)數(shù)

  5.校驗(yàn)錯(cuò)誤

  6.用戶終止

  方法1:前4種條件在從站發(fā)生通訊故障后就失效了,必須要配合用戶終止

  一般執(zhí)行XMT后,在發(fā)送完成中斷里執(zhí)行RCV,同時(shí)啟動(dòng)定時(shí)中斷或者啟動(dòng)定時(shí)器或者執(zhí)行開(kāi)始間隔時(shí)間BITIM,計(jì)時(shí)時(shí)間到復(fù)位使能位SM87.7/SM187.7,同時(shí)執(zhí)行RCV,這樣結(jié)束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:設(shè)置:SMB87=16#9C, SMW90/SMW190=0,SMW92/SMW192=x

  執(zhí)行RCV指令x毫秒后自動(dòng)結(jié)束接收狀態(tài)。

  如果用的是字符中斷方式接收信息,那么將中斷分離后即可發(fā)送

  DTCH 8

  XMT VB100, 0

  用結(jié)束字符作為結(jié)束條件的時(shí)候,如果與設(shè)備的通信斷了,CPU就會(huì)停滯在接受狀態(tài),之后的發(fā)送也不成功了,通訊也徹底斷了。

  后來(lái)別人教我在發(fā)送前面用復(fù)位SMB87.7結(jié)束發(fā)送就好了。

  自由口用RCV接收,接收到的數(shù)據(jù)總是一部分,不全,反復(fù)檢查做實(shí)驗(yàn),才發(fā)現(xiàn)原來(lái)是結(jié)束的定時(shí)器時(shí)間設(shè)短了,導(dǎo)致數(shù)據(jù)沒(méi)有接收完,RCV就結(jié)束了,增大了時(shí)間,一切就OK了。

  剛做自由口編程時(shí),一下載下去,編程軟件就無(wú)法和CPU通信了,后來(lái)打到停止?fàn)顟B(tài),CPU才恢復(fù)PPI,可以正常監(jiān)控,下載了

(轉(zhuǎn)載)

標(biāo)簽:PLC 控制系統(tǒng) 我要反饋 
2024世界人工智能大會(huì)專題
即刻點(diǎn)擊并下載ABB資料,好禮贏不停~
優(yōu)傲機(jī)器人下載中心
西克
2024全景工博會(huì)
專題報(bào)道