在前面我們已經學會了使用貝福自帶的調試軟件完成試運行,接下來是使用TWINCAT PLC實現這個功能,右擊PLC添加一個PLC項目
在VISUs上右擊添加一個HMI人機界面
目前PLC程序和人機界面都是空的,我們要通過這兩個實現我們自定義的點動。首先右擊Reference添加TC2_MC2的類庫(這個類庫是Motion Control的類庫)
右擊GLVs,添加兩個全局變量,注意類型為AXIS_REF(比較特殊的類型,是跟NC軸交互的變量),在TWINCAT2中不太一樣,一個AXIS_REF相當於PlcToNC+NcToPlc一對變量(因為PLC需要將數據傳給驅動器,又需要從驅動器獲取指定的數據,所以本質上是一對變量,只不過TWINCAT3把他們放到一起了)
Axis_1:AXIS_REF;
PlcToNc AT %Q* : PLCTONC_AXLESTRUCT;
NcToPlc AT %I* : NCTOPLC_AXLESTRUCT;
選中Axis1,然后Link To PLC中選擇剛才新建的AXIS_REF類型變量(如果沒有顯示,就點擊左上角的激活配置然后再綁定)
在編寫具體程序的時候(不會每一行都講一遍,基本看代碼+參照基礎的培訓視頻即可),注意我們添加了一個特殊類型的變量,讓變量添加AT%Q就是表示他可以跟驅動器的某個參數綁定(從PLC寫入到驅動器的數值),我們前面講過需要在實際運行之前將Modes of operation改成8,需要先在MAIN程序中寫,然后激活配置,然后自己綁定
AxisControlWord AT%Q*:SINT:=8;//Normally will be 8
說明:因為只是初步驗證,程序結構會盡可能簡化。但是獲取位置,速度,錯誤是任何項目都必不可少的,而且應該放在程序最前面,一旦錯誤發生了,后續的就不要再進行了。
說明:主程序通過一個INT類型變量的切換實現不同的功能(這個是自定義的,比如數值1表示清除錯誤,2表示上使能,3表示下使能,以此類推),建議在0狀態的時候讓要用的功能塊都變成FALSE並執行,這樣下次點擊某個按鈕的時候就會產生上升沿,從而執行運動(要充分認識到TWINCAT的掃描周期的原理,必須是這個周期為FALSE,下個周期為TRUE,才能產生上升沿,很多功能塊才能真正執行)
說明:在每一個功能塊執行的時候,盡量做一個判斷,如果執行成功了,給字符串賦一個done,否則是doing,以此來區分是否成功執行(在人機界面上可以看到字符串知道是否執行完成),當然你也可以每次定位到功能塊的指定變量上看是否為TRUE,但是這樣做顯然效率更高,只要看HMI一個即可。
說明:這里演示的功能塊大部分是沒用的(至少做實際項目上很少用),比如一個絕對運動模塊就可以實現相對運動,勻速運動這些功能,那么相對運動,勻速運動就是多余的。而標記零點的功能並沒有把值寫入到文件或者寫入到驅動器的參數中去,下次重啟項目還需要重新標記零點,所以也不完善。這些都將在后面的程序中完善,這里着重需要理解TWINCAT提供的典型的功能塊。
更多教學視頻和資料下載,歡迎關注以下信息:
我的優酷空間:
http://i.youku.com/acetaohai123
我的在線論壇:
http://csrobot.gz01.bdysite.com/
問題交流:
QQ:910358960