AGV小車的基礎控制
HMS Industrial Networks 的 CM CANopen 模塊與 Siemens 的 S7-1200 PLC 的 TIA Portal 配置示例。在此示例中,使用了 1214C 類型的 CPU,但該示例也可以應用于所有其他 PLC 類型。要運行此示例,必須已安裝可從 https://www.ixxat.com/technical-support/resources/downloads-and-documentation?ordercode=021620-B下載的 HSP 文件。
CANopen網絡連接:
分別對應連接CM模塊和LXM28A伺服的CAN_H、CAN_L和SHLD引腳,在CM模塊CAN_H和CAN_L之間接入120歐姆電阻,并且在CANopen網絡中最后一臺設備CAN_H和CAN_L之間接入120歐姆電阻。
打開 TIA Portal 程序并通過單擊屏幕左側的“創建新項目”開始一個新項目。
2. 輸入項目名稱和項目存儲路徑,可選擇包含作者和描述性注釋等信息。按“創建”。
3. 選擇左側的“設備和網絡”,然后按“添加新設備”。
4. 選擇配置中使用的 PLC 類型。選擇正確的軟件版本并可選擇輸入 PLC 的名稱(默認 PLC_1)。按“添加”。
5. 如圖所示,在列表中選擇CM CANopen模塊。將模塊的一個實例拖放到 PLC 模塊的左側。
6. 雙擊 PLC 上的以太網連接器并為 PLC 輸入正確的 IP 地址。
7. 雙擊CM CANopen模塊的連接器,選擇模塊參數選項卡。在參數列表中輸入值。請注意,這些參數對 CANopen 網絡上的模塊有效。
在本例中,用于 S7-1200 的 CM CANopen 模塊被配置為 CANopen 管理器。
CANopen 網絡上的節點號為 1。CANopen 波特率設置為 500 kbit/s,輸入數據大小和輸出數據大小均設置為 32 字節。
8. 配置現已完成,可以下載到 S7-1200 設備。要下載軟件配置,請選擇右側的 PLC_1,然后選擇“在線”>“下載到設備”。要下載硬件配置,請右鍵單擊樹中的設備并選擇“下載到設備”>“全部”。
9. 選擇您正在使用的 PG/PC 接口(在此示例中為 PN/IE)和您 PC 上的以太網接口(在此示例中為 Intel 82577...)。如果在網絡上找到之前輸入的 IP 地址,請按“加載”下載到您的設備。如果沒有,請從“目標子網中的可訪問設備”窗口中的可用列表中選擇正確的設備。如果設備在另一個子網上,并且在此窗口中不可用,則必須選中“顯示所有可訪問的設備”復選框。
10.如果下載成功,將出現以下屏幕詢問PLC是否應該啟動。按完成,PLC 將開始運行下載的空程序。
11.模塊配置完成,可以開始PLC編程了。
創建用于進行PDO數據讀寫的FC功能塊:①在“程序塊”中添加FC100功能塊并命名為“PDO讀寫”;② 在“擴展指令”下展開“分布式IO”找到RDREC和WRREC指令;③分別將RDREC和WRREC指令拖入程序段1和程序段2中。
RDREC參數說明:讀取PDO數據
REQ 功能塊使能位 VALID TRUE代表新的數據記錄已接收且有效
ID CM模塊硬件標識符 BUSY TRUE代表讀取數據的過程還未完成
INDEX 16#0090 ERROR TRUE代表在讀取數據的過程中產生錯誤
MLEN CANopen輸入數據大小(bytes) STATUS 功能塊狀態和錯誤信息
RECORD 讀取的數據存放的地址域 LEN 讀取數據的長度
WRREC參數說明:寫入PDO數據
REQ 功能塊使能位 DONE TRUE代表數據已寫入CM模塊
ID CM模塊硬件標識符 BUSY TRUE代表寫入數據的過程還未完成
INDEX 16#0091 ERROR TRUE代表在讀取數據的過程中產生錯誤
LEN CANopen輸出數據大小(bytes) STATUS 功能塊狀態和錯誤信息
RECORD 寫入的數據來源的地址域
2. 創建PDO讀寫指令塊變量:打開“PLC變量”下的“默認變量表”,分別添加PDO讀寫指令塊需要用到的參數變量:
3. PDO讀取數據指令塊的參數具體分配如下圖所示:
1) 讀取的數據存放于M區中起始地址為100,長度為100Bytes(需大于或者等于MLEN)的地址區間。MLEN表明了該區間的有效數據長度,即CANopen輸入數據大小。
2) 可以創建DB數據塊(例如DB3),RECORD定義為P#DB3.DBX100.0 BYTE 100,讀取的數據存入DB3塊中起始地址100,長度100Bytes 的地址區間。注意DB塊屬性中的“優化的塊訪問”不要勾選。
4. PDO寫入數據指令塊的參數具體分配如下圖所示:
1) 寫入的數據來源于M區中起始地址為200,長度為100Bytes(需大于或者等于LEN)的地址區間。LEN表明了該區間中的有效數據長度,即CANopen輸出數據大小。
2) 可以創建DB數據塊(例如DB3),RECORD定義為P#DB3.DBX200.0 BYTE 100,寫入的數據來源于DB3塊中起始地址200,長度100Bytes 的地址區間。注意DB塊屬性中的“優化的塊訪問”不要勾選。
5. 根據以上配置可以確認PDO傳輸參數的地址映射如下表所示:
6. 數據轉換:由于CANopen和PLC分別使用的不同的數據格式,所以需要將PDO傳輸的原始數據轉換為可以直接進行讀取和設定的用戶數據:
1) 創建用戶數據塊:創建全局數據塊DB100,并在DB100中分別添加需要對伺服進行讀取的反饋參數和需要對伺服進行寫入的設定參數。
2) 創建PDO讀取數據轉換功能塊FC101:①在“程序塊”中添加FC101功能塊并命名為“PDO讀_Swap”;② 利用Swap指令和Move指令將PDO讀取的數據轉換為用戶數據。
3) 創建PDO寫入數據轉換功能塊FC102:①在“程序塊”中添加FC102功能塊并命名為“PDO寫_Swap”;② 利用Swap指令和Move指令將用戶數據轉換為PDO寫入的數據。
4) 在PDO讀寫功能塊中調用FC101和FC102: 打開FC100功能塊,在程序段1(RDREC)和程序段2(WRREC)之間插入新的程序段,在新的程序段中分別調用FC101和FC102如圖所示:
7. 在OB1中調用PDO讀寫功能塊FC100,保存配置并進行編譯下載:
8. 創建監控表:①在“監控與強制表”中添加新的監控表;②添加PDO讀取數據指令塊的對應變量和用戶數據塊中的伺服狀態參數;③添加PDO寫入數據指令塊的對應變量和用戶數據塊中的伺服控制參數。
9. 在線進行監控:①點擊“監控”圖標進入在線狀態;②將R_Req的修改值置為TRUE;③點擊“立即修改”圖標將修改值寫入對應變量;④ 伺服狀態參數的對應數據已經被成功讀取,查看伺服通訊手冊可知狀態字16#4231代表伺服處于“Ready to Switch On”狀態。
10. 絕對位置運動控制測試:① 將W_Req修改值置為TRUE;② 分別對伺服控制參數進行賦值;③依次向控制字中寫入0x0006?0x0007?0x000F?0x001F,每次賦值后點擊“立即修改”圖標;④ 電機轉動一段時間后停止,此時讀取實際位置數據與目標位置數據一致。
-----伺服運動控制例程 -------
該部分以位置模式下的“絕對位置,立刻更新”控制方式為例,編寫對伺服進行運動控制的簡單例程,供用戶在實際編程應用中作參考。
創建功能塊FB110并進行變量聲明:①在“程序塊”中添加FB110 功能塊并命名為“位置模式控制”;② 在“變量聲明表”中添加以下變量:
2. 在程序段1中編寫程序用于控制伺服上電后自動進入“運行使能”狀態:
3. 在程序段2中編寫程序用于自動觸發“絕對位置,立即更新”方式下的位移指令:
4. 在OB1組織塊的程序段3中編寫程序用于控制PLC自動使能PDO讀寫和網絡診斷:
5. 在OB1組織塊的程序段4中調用FB110并賦予實參如圖所示:
6. 在OB1組織塊的程序段5中編寫程序用于控制伺服上電后自動回零:
7. 在OB1組織塊的程序段6中編寫程序用于控制伺服自動進行連續的正反轉位移指令:
8. 點擊“保存項目”并重新進行編譯和下載。下載完成后對PLC和伺服重新上電,此時可以看到電機緩慢轉動一段時間后停止,此時通過PLC監控表或者伺服HMI可以看到實際位置顯示為0:
9. 在監控表中添加“自動運行控制”和“目標到達”變量,向“自動運行控制”中寫入修 改值TRUE,此時可以看到電機先以較慢的速度正向移動到8000000位置(第一段位移指令),然后以較快速度正向移動到15000000位置(第二段位移指令),最后以較慢的速度反向移動到6000000位置(第三段位移指令),此時“目標到達”為TRUE。
提示:“目標到達”為TRUE后再次向“自動運行控制”中寫入修 改值TRUE,電機會再次自動執行以上三段位移指令。
--------------------待續------------------
審核編輯 :李倩
-
cpu
+關注
關注
68文章
10826瀏覽量
211160 -
AGV
+關注
關注
27文章
1281瀏覽量
41015
原文標題:CM CANopenS7-1200 PLC的CANopen主站/從站模塊,使用的功能塊
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論