【動作描述】
(2)按下停止按鈕,電機逆序熄滅。
(3)為瞭程序足夠簡潔,不使用入門的常規寫法,需要使用變址寄存器Z
【前置基礎】
(1)變址寄存器:變址寄存器Z可以通過與其他編程元件組合,通過更改變址寄存器的數值可以達到更改與其組合的軟元件地址的特殊寄存器。
比如以下程序當按下X0按鈕時,Z0裡面保存的數據就是0,那麼Y0Z0這個元件的地址就是Y0。
當按下X1時,Z0裡面保存的數據就是2,那麼Y0Z0這個元件的地址就是Y2。
當按下X2時,Z0裡面保存的數據就是5,那麼Y0Z0這個元件的地址就是Y5。
【程序編寫及思路】
(1)啟動程序
33468758463cd8aa5d0cfa10d3537852
X0按鈕作為啟動,按下第一次交替輸出指令ALT M0,讓M0由斷開變為導通,M0是啟動標志位,在M0的常開觸點的條件下,執行定時器T0 K3,0.3秒過後T0就被自身的常閉觸點斷開,復位瞭,復位之後,它的常開觸點右開始閉合重新定時,這樣每隔0.3秒定時器T0就動作一次。
我們利用X0的上升沿去觸發置位指令,第一次Z0保存的數據等於0,Y0Z0的地址時Y0,點亮瞭Y0,然後順便給Z0自加瞭1,等於1;第二次T0導通時,由於Z0等於1,Y0Z0的地址變成瞭Y1,這個時候SET Y0Z0點亮的時Y1。
以此類推,下一次點亮Y3,直到點亮到Y40時,Y40常開閉合,把定時器T0和變址寄存器Z0復位,同時置位M1,M1的常閉觸點斷開置位和變址寄存器加一的程序,Y點啟動到此位置。
(2) 停止程序
X0按下第二次,ALT指令讓其由導通變為斷開
f307e415696b138e577728bf89ff51b1
這時M0的下降沿會有一個導通的信號,給Z0賦值賦瞭K32(這時有些同學會說瞭,為什麼Y40不是給Y40而是Y32。
這個是因為Y點是8進制的,Y7後面就是Y10,那麼假如我們給Z0給瞭一個K8的數據,那麼對應的地址應該是Y10而不是Y8,所以按照這個順序去算,Y40應該是第32個點),由於M0斷開瞭,所以它的常閉觸點就會閉合,我們用與之前同樣的定時器的方法觸發T1,每隔0.3秒就是觸發T1一次。
下面我們利用T1的上升沿去復位對應的Y點,第一次復位的是Y40,然後讓Z0自減1;第二次,由於Z0的數據減1變成K31,這個時候復位的是Y37,同樣的道理Y點不斷地往低編號去復位。
直到Z0等於0時,復位結束,這個時候我們復位掉M1這個點。
上面這樣的程序存在2個問題,就是Y0停下瞭,T1還在不斷地計數,Z0還在往下減,這個時候在定時器的位置加瞭一個[<> z0 k0],表示Z0不等於0時才能導通,等於0瞭就不導通瞭。
程序如下:
0ac4381e3b210cd6a0a35e4f9706d6b6
這樣寫還存在1個問題,你會發現停止時Y0沒有滅掉,這是由於當程序第43步Z0等於1時,復位瞭Y1,然後就做瞭減1,這時Z0變為0。
T1的定時器就沒辦法導通瞭,這時我們可以換一個思路去做這個控制,優化這一步,可以用Y1的下降沿信號,去觸發定時器,再定個0.3秒,去復位掉Y0。整段停止的程序應該寫成如下:
☆本賬號為技成培訓網的官方知乎賬號。在這裡,你可以閱讀到許多關於電氣自動化的優質內容(圖文/視頻) 大傢不要吝惜手裡的“邀請”,讓我們在分享中共同進步。看到這裡就給點個贊吧!
關註技成培訓,私信我,領取電氣人專屬軟件資料包(仿真軟件、PPT、工控全套、電氣識圖等)