岸邊橋式集裝箱起重機plc程序的設計與實現
3. plc程序的統一性問題
3.1. plc程序統一性問題的發現
在岸橋的plc程序編寫完成后,我們隨即在岸橋上進行了調試,由此發現了程序的統一性問題,該問題是這樣的:我們所進行的這個項目有12臺岸橋,在岸橋上,有些數據的定義需根據現場的實際情況來定義,舉一簡單的例子:
比如小車機構位置編碼器的零位數據offset,對于調試的第一臺岸橋,我們可以很容易加以這樣定義:將小車機構行駛到 后面的終點位置,讀出小車在該位置時位置編碼器的讀數,以此作為小車機構位置編碼器的零位數據offset。但我們在調試第二臺岸橋時發現,由于機械安裝的誤差,第二臺小車機構行駛到 后面的終點位置時,讀出的小車位置編碼器讀數與第一臺岸橋的數值不相同。也就是說,我們必須將第二臺岸橋的小車機構位置編碼器的零位數據offset設置成不一樣的數據。
與此有相同問題的數據還有諸如重量傳感器的比例系數,小車自動停車時停車位置點,俯仰機構的上升終點位置等等。這些問題都產生了一個后果,調試結束后每臺岸橋都有對應的plc程序,彼此之間不統一。
3.2. 解決plc程序統一性問題的分析
分析這個問題,我們設想了以下解決問題的方法:
n 我們可以增加設計這樣一段解決問題的“岸橋編號識別”程序:首先讓各臺岸橋編號:比如岸橋1,岸橋2。。。。。。岸橋12,plc程序運行“岸橋編號識別”程序來判定該岸橋的編號,如果是岸橋1,“岸橋編號識別”程序就執行將岸橋1的數據裝載到一“共用數據塊”。
“岸橋編號識別”執行完畢后,我們所需要的數據都在這“共用數據塊”中,之后plc在程序運行時,如需要用到那些各臺岸橋有差異的數據,就可以從該“共用數據塊”中讀取所需要的數據。整個過程如圖3-1所示:
圖3-1:“岸橋編號識別”程序
3.3. plc程序統一性問題的處理
有了以上的思路,接下來我們就著手開始解決這個plc程序統一性問題:
l 第一步:對岸橋進行編號:
將岸橋定義為岸橋1# 至岸橋12# ,但是如果要讓plc能夠識別這些編號,那么我們必須設置輸入信號送給plc,我們利用了一個備用的輸入字節ib256來定義岸橋的編號,在plc系統的硬件輸入上,我們按此定義對各臺岸橋接入高電平,每臺岸橋不同,如下圖3-2所示:
l 在程序中為每臺岸橋設置一個db數據塊(database),分別為db201~db212,分別對應岸橋1~12的數據,如下圖3-3所示:
圖3-3:岸橋1~12數據塊
l 編寫“岸橋編號識別”程序:創建一功能fc74用于處理不同岸橋編號識別,然后將對應岸橋的數據塊db20x數據傳輸給一共用數據塊db74。如下圖3-4所示:當岸橋編號craneid是2的時候,將岸橋2的數據塊db202的44個字節傳輸到共用數據塊db74中。
圖3-4:“岸橋編號識別”程序
l plc讀取共用數據塊中的數據:plc可以任意讀取共用數據塊中的數據,該數據就是對應相應岸橋的數據,如下圖3-5所示程序:
圖3-5:讀取“共用數據塊db74”數據程序
由此,我們通過程序的修改完全解決了plc程序統一性的問題,使該plc程序更加完善,可靠。