官术网_书友最值得收藏!

2.1 程序流程基礎知識

2.1.1 PLC程序結構和程序流程

PLC的用戶程序一般分為主程序區和副程序區。主程序區存有用戶控制程序,簡稱主程序,是完成用戶控制要求的PLC程序。主程序是必不可少的,且只能有一個。副程序區存有子程序和中斷服務程序,子程序和中斷服務程序是一個個獨立的程序段,完成獨立的功能,它們依照程序設計人員的安排依次存放在副程序區中。

主程序區和副程序區用主程序結束指令FEND進行分隔。PLC在掃描工作時,只掃描主程序區,不掃描副程序區。也就是說,當PLC掃描到主程序結束指令FEND時,同掃描到END結束指令一樣,執行刷新功能,并返回到程序的開始,繼續掃描工作。

在小型控制程序中,可以只有主程序而沒有副程序,其程序結束指令為END。這時,程序流程有兩種情況:一種是從上到下、從左到右的順序掃描;另一種情況是程序會發生轉移,當轉移條件成立時,掃描會跳過一部分程序,向前或向后轉移到指定程序行繼續掃描。

圖2-1表示了這兩種程序流程。

圖2-1 程序流程示意圖

當系統規模很大、控制要求復雜時,如果將全部控制任務放在主程序中,主程序將會非常復雜,既難以調試,也難以閱讀,而且,若發生隨機事件,難以在主程序中進行處理。這時,就會把一些程序編寫成程序塊放到副程序區。PLC是不會掃描副程序區的,這些程序塊只能通過程序流程轉移才能執行。這種程序轉移與上面所講的程序轉移有很大的區別。如果上面的程序轉移稱為條件轉移的話,這里的程序轉移可以稱為斷點轉移。

條件轉移在主程序區內進行,轉移后,PLC掃描仍按順序進行,直到執行到主程序結束指令FEND或END指令再從頭開始,不存在轉移斷點和返回。

斷點轉移則不同,當PLC碰到斷點轉移時,會停止主程序區的掃描工作,在主程序區產生一個程序中斷點,然后轉移到副程序區去執行相應的程序塊,執行完畢后,必須再次從副程序區回到主程序區的斷點處,由斷點處的下一條指令繼續掃描下去。其轉移流程如圖2-2所示。

圖2-2 斷點轉移流程示意圖

由圖中程序流程可見,完成這種程序轉移,以下內容是不能缺少的:必須要有引起轉移的條件,告訴PLC什么時候發生轉移;發生轉移時,PLC必須能記住主程序的斷點;發生轉移時,必須告訴PLC程序轉移的地址入口;程序塊執行完后,必須告訴PLC需要返回的信息。后面將從這幾方面來介紹子程序和中斷服務程序的結構及運行。

主站蜘蛛池模板: 吉安县| 兴化市| 双牌县| 佛教| 道真| 石棉县| 乳山市| 南通市| 鸡东县| 阿荣旗| 大关县| 梁山县| 邵阳市| 九江县| 乌拉特前旗| 铁力市| 松潘县| 长治市| 益阳市| 滦平县| 图们市| 苍山县| 荔浦县| 关岭| 石柱| 木兰县| 万载县| 扎囊县| 兰州市| 乡宁县| 阿坝县| 金川县| 晴隆县| 榕江县| 南宁市| 岗巴县| 班戈县| 宜兰县| 隆德县| 伽师县| 惠来县|