新聞中心

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

        plc自由口編程處理

        作者: 時間:2016-12-16 來源:網絡 收藏
        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,可以正常監控,下載了。


        關鍵詞: plc自由口編程處

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 田林县| 金溪县| 衡阳县| 文安县| 耿马| 晋江市| 安宁市| 山西省| 吐鲁番市| 鹤岗市| 永兴县| 天峨县| 瓮安县| 忻城县| 大关县| 全州县| 兴安盟| 海淀区| 孟连| 弥勒县| 五指山市| 东台市| 高淳县| 武冈市| 武川县| 白玉县| 建平县| 黔南| 岱山县| 探索| 淮滨县| 托里县| 青浦区| 湖北省| 拜城县| 河间市| 福安市| 林州市| 微山县| 通许县| 胶州市|