S7-200 SMART V90 Modbus Library 可以支持速度及內(nèi)部位置控制,如圖1。所有的功能塊都編寫(xiě)成了子程序,使用時(shí)只需將相應(yīng)的子程序拷貝到項(xiàng)目中即可, 但要注意避免使用與子程序中重復(fù)的地址。
圖1. V90 Modbus Library
1. 在 PLC 側(cè)不必編寫(xiě)任何位控程序,只需調(diào)用 S7-200 SMART V90 Modbus Library 即可。
2. 不必查詢V90 中的參數(shù)號(hào),只需通過(guò)庫(kù)的接口參數(shù)輸入相應(yīng)的速度,位置以及控制參數(shù)
3. 庫(kù)例程中已經(jīng)做好輪詢程序,用戶只需稍做修改就可用在自己的項(xiàng)目中
注意:由于Modbus RTU 是串口通信,實(shí)時(shí)響應(yīng)與直接脈沖控制相比要慢,特別是控制多軸時(shí)
序號(hào) | 軟硬件要求 |
1 | S7-200 SMART CPU V2.1 |
2 | STEP7-Micro/WIN SMART V2.1 Update 2 |
3 | V90 驅(qū)動(dòng)器 V1.05 以上 |
4 | SINAMICS V-ASSISTANT V1.03 |
使用S7-200 SMART V90 Modbus Library 之前要先用SINAMICS V-ASSISTANT 軟件對(duì) V90 進(jìn)行設(shè)置(或是直接在V90上進(jìn)行參數(shù)設(shè)置)
1. 使用USB電纜連接V90與裝有SINAMICS V-ASSISTANT 的軟件, 如圖2。
圖2. USB 電纜連接 V-ASSISTANT 與 V90
2. 打開(kāi)SINAMICS V-ASSISTANT 軟件,并點(diǎn)擊“在線”,軟件會(huì)自動(dòng)檢測(cè)出所使用的V90 的型號(hào)以及電機(jī)的型號(hào),如此時(shí)可設(shè)置控制模式,如圖3。
圖3. 在線檢測(cè)讀出 V90 及電機(jī)型號(hào)
3. 定義IO輸入輸出分配,有些輸入信號(hào)如果沒(méi)有實(shí)際接入,可以通過(guò)軟件中的強(qiáng)制實(shí)現(xiàn),如圖4。
圖4. 輸入輸出分配
4. 仿真及測(cè)試電機(jī),使用PLC 控制前可先進(jìn)行 IO 及 電機(jī)測(cè)試,以便檢測(cè)V90 側(cè)沒(méi)有任何問(wèn)題,如圖5。
圖5. IO 仿真及電機(jī)測(cè)試
1. 在 V-ASSISTANT中設(shè)置 V90 基本參數(shù),如圖6。
圖6. V-ASSISTANT 中設(shè)置 V90 參數(shù)
2. 如果不使用 V-ASSISTANT, 則在 V90 上直接設(shè)置參數(shù),如圖7。
圖7. V90 面板直接設(shè)置伺服驅(qū)動(dòng)器參數(shù)
3. Modbus 初始化,設(shè)置的通信速率要與V90中的設(shè)置一致, 如圖8。
圖8. Modbus 初始化
4. 控制速度軸,如圖9。
圖9. 控制速度軸
參數(shù)定義如表1.
表1. 速度軸參數(shù)定義
EN
|
:Bool 子程序使能信號(hào);
|
COM_EN
|
:Bool MBUS通訊觸發(fā)信號(hào), 上升沿有效,觸發(fā)一次COM_EN信號(hào),子程序中通訊操作輪詢一次;
|
Slave_Addr
|
:Byte V90 驅(qū)動(dòng)MBUS通訊地址(P29004);
|
CTW
|
:WORD V90 驅(qū)動(dòng)MBUS通訊控制字(40100),第0位SON_OFF1必須需要0-->1才能伺服使能;輸入:16#41E-16#41F與V90中的40100一致,如果需要單獨(dú)控制其它位,需要參照控制字每一位的含義,如圖10;
|
SpeedSet
|
:Real 速度給定(40101),范圍 0.0 % --100.0%額定轉(zhuǎn)速;例:如果額定速度為3000,輸入20,則速度為3000*20%=600;
|
COM_Buf
|
:DWORD MBUS讀寫(xiě)操作緩沖區(qū),指針變量 格式必須為 &VB,建議每個(gè)周間隔50 Bytes,例如Axis_1----&VB6000; Axis_2----&VB6050; Axis_3----&VB6100......;
|
Done
|
:Bool 當(dāng)前子程序掃描完成信號(hào),可以用于下一個(gè)子程序的COM_EN觸發(fā)信號(hào),但是必須在下一個(gè)子程序掃描完成之后進(jìn)行復(fù)位操作;
|
Active
|
:Bool 當(dāng)前子程序激活,正在處理;
|
圖10. 控制速度 40100 參數(shù)定義
內(nèi)部位置控制可以實(shí)現(xiàn)相對(duì)位移和絕對(duì)位移的控制,可根據(jù)實(shí)際應(yīng)用選擇使用,如圖11。
圖11.位置控制程序塊
1. 在 V-ASSISTANT 中設(shè)置 V90 基本參數(shù),如圖12。
圖12. V-ASSISTANT 中設(shè)置 V90 參數(shù)
2. 如果不使用 V-ASSISTANT, 則在 V90 上直接設(shè)置參數(shù),如圖13。
圖13. V90 面板直接設(shè)置伺服驅(qū)動(dòng)器參數(shù)
3. Modbus 初始化,設(shè)置的通信速率要與 V90 中的設(shè)置一致, 如圖14。
圖14. Modbus 初始化
4. 控制相對(duì)定位(通過(guò)40100參數(shù)中的 “POS_TYP" 參數(shù)來(lái)選擇相對(duì)位定位), 如圖15。
圖15. 控制相對(duì)定位
參數(shù)定義如表2.
表2. 相對(duì)定位接口參數(shù)定義
EN
|
:Bool 子程序使能信號(hào);
|
COM_EN
|
:Bool MBUS通訊觸發(fā)信號(hào), 上升沿有效,觸發(fā)一次COM_EN信號(hào),子程序中通訊操作輪詢一次;
|
Slave_Addr
|
:Byte V90 驅(qū)動(dòng)MBUS通訊地址(P29004);
|
CTW
|
:WORD V90 驅(qū)動(dòng)MBUS通訊控制字(40100),位置模式給出 16#40E 到 16#40F,驅(qū)動(dòng)使能,第0位SON_OFF1必須需要0-->1才能伺服使能;然后再給出16#41F,使得STEP_ACC有一個(gè)觸發(fā)上升沿;如果需要單獨(dú)控制其它位,需要參照V90位置模式IPOS下的控制字每一位的含義,如圖16;
|
PositionSet |
:Dint 位置給定,對(duì)應(yīng)于 LU;
|
SpeedSet
|
:Dint 速度給定,對(duì)應(yīng)于 SpeedSet * 1000 LU/MIN;
|
COM_Buf
|
:DWORD MBUS讀寫(xiě)操作緩沖區(qū),指針變量 格式必須為 &VB,建議每個(gè)間隔100 Bytes,例如Axis_1----&VB7000; Axis_2----&VB7100; Axis_3----&VB7200......;
|
Done
|
:Bool 當(dāng)前子程序掃描完成信號(hào),可以用于下一個(gè)子程序的COM_EN觸發(fā)信號(hào),但是必須在下一個(gè)子程序掃描完成之后進(jìn)行復(fù)位操作;
|
Active
|
:Bool 當(dāng)前子程序激活,正在處理;
|
圖16. 相對(duì)定位 40100 參數(shù)定義
絕對(duì)定位控制,V90 的基本參數(shù)設(shè)置與相對(duì)定位基本相同,如圖12。除此之外,還需要對(duì)參考點(diǎn)進(jìn)行參數(shù)設(shè)置。
1. 使用 V-ASSISTANT 選擇參考點(diǎn)類型,如圖17。
圖17. 選擇絕對(duì)定位參考點(diǎn)類型
2. 分配參考點(diǎn)輸入地址,如圖18。
圖18. 分配參考點(diǎn)輸入地址
3. 分配"參考點(diǎn)OK" 輸出地址,當(dāng)執(zhí)行尋找參考點(diǎn)指令并尋參成功后, “REFOK” 輸出置位為1,如圖19??墒褂迷撦敵雠袛鄬⒊晒?,執(zhí)行絕對(duì)定位指令。
圖19. 分配參考點(diǎn)OK" 輸出地址
4. 控制絕對(duì)定位(通過(guò)40100參數(shù)中的“ POS_TYP" 參數(shù)來(lái)選擇絕對(duì)定位),圖20。
圖20. 控制絕對(duì)定位
注意:一定要在尋參成功后,即“REFOK”為1后,才可執(zhí)行絕對(duì)定位。
表3. 絕對(duì)定位接口參數(shù)定義
EN
|
:Bool 子程序使能信號(hào);
|
COM_EN
|
:Bool MBUS通訊觸發(fā)信號(hào), 上升沿有效,觸發(fā)一次COM_EN信號(hào),子程序中通訊操作輪詢一次;
|
Slave_Addr
|
:Byte V90 驅(qū)動(dòng)MBUS通訊地址(P29004);
|
CTW
|
:WORD V90 驅(qū)動(dòng)MBUS通訊控制字(40100),位絕對(duì)置模式給出 16#40E 到 16#40F,驅(qū)動(dòng)使能,第0位SON_OFF1必須需要0-->1才能伺服使能;然后再給出16#240F,尋找參考點(diǎn);用REFOK來(lái)判斷尋參成功后,再給出16#46F,執(zhí)行絕對(duì)定位操作。以后只要位置或速度變化就會(huì)立即執(zhí)行,不需要再改變CWT的參數(shù)。如果需要單獨(dú)控制其它位,需要參照V90位置模式IPOS下的控制字每一位的含義,如圖21; |
PositionSet |
:Dint 位置給定,對(duì)應(yīng)于 LU;
|
SpeedSet
|
:Dint 速度給定,對(duì)應(yīng)于 SpeedSet * 1000 LU/MIN;
|
COM_Buf
|
:DWORD MBUS讀寫(xiě)操作緩沖區(qū),指針變量 格式必須為 &VB,建議每個(gè)間隔100 Bytes,例如Axis_1----&VB7000; Axis_2----&VB7100; Axis_3----&VB7200......;
|
Done
|
:Bool 當(dāng)前子程序掃描完成信號(hào),可以用于下一個(gè)子程序的COM_EN觸發(fā)信號(hào),但是必須在下一個(gè)子程序掃描完成之后進(jìn)行復(fù)位操作;
|
Active
|
:Bool 當(dāng)前子程序激活,正在處理;
|
圖21. 絕對(duì)定位 40100 參數(shù)定義
所有的功能塊都編寫(xiě)成了子程序,使用時(shí)只需將相應(yīng)的子程序拷貝到項(xiàng)目中即可, 但要注意避免使用與子程序中重復(fù)的地址。程序里面不能多個(gè)軸使用一個(gè)子程序,如要增加新的軸可通過(guò)拷貝增加新的子程序,每一個(gè)軸對(duì)應(yīng)一個(gè)子程序;具體應(yīng)用程序包里面有一個(gè)3軸速度模式程序和2軸位置模式程序,可以按照這種方式進(jìn)行修改;
注意:此程序的作者和擁有者對(duì)于該程序的功能性和兼容性不負(fù)任何責(zé)任。使用該程序的風(fēng)險(xiǎn)完全由用戶自行承擔(dān)。由于它是免費(fèi)的,所以不提供任何擔(dān)保,錯(cuò)誤糾正和熱線支持,用戶不必為此聯(lián)系西門(mén)子技術(shù)支持與服務(wù)部門(mén)。
為什么修改了V90中的一些參數(shù)(如RS485 地址) 卻不生效?
答:很多參數(shù)需要重新啟動(dòng)才會(huì)生效,注意參數(shù)后面的生效方式,圖如22。
圖22. 參數(shù)生效方式
電話:15721373211
郵箱:15721373211@139.com
網(wǎng)址:http://openxml.net/
地址:上海青浦區(qū)北青公路7171號(hào)111-112室