網上的信息比較散,官方說明也不充分,尤其是涉及主站按需寫入的部分沒有見到現成案例。
以下記錄完成位輪詢讀取,同時按需寫入的程序。
初始化主站,初始化塊的完成位M9.3通過上升沿觸發一個M9.4,用于后面啟動輪詢。
第一個輪詢,第一次啟動由M9.4觸發,后面都變為由M9.5觸發。完成位是M2.1,要用M2.1來復位M9.4和M9.5
第二個輪詢,用上一輪詢的完成位M2.1觸發,本輪完成位是M2.2。隨后用M2.2復位M2.1。
后面兩輪讀取以此類推。現在所有讀取已完成(共讀取4個寄存器)。
讀取完成后要判斷是否需要寫入。判斷的標準是從站的設定值與主站的設定值是否一致,如果不一致,則通過觸發M2.5來進入寫入。如果一致,則觸發M9.5返回第一個讀取。
第一個寫入,用M2.5觸發。和讀取一樣,用完成位M2.6復位M2.5。
第二、三個寫入,同上。第三個(也是最后一個)寫入用M9.5作為完成位,因此它將觸發第一個讀取。同時用M9.5復位M2.7。
END