商鋪名稱:上海斌勤電氣技術有限公司
聯系人:康奎(先生)
聯系手機:
固定電話:
企業郵箱:192061030@qq.com
聯系地址:上海市松江區三新北路1800弄(松江電子商務園區)
郵編:201501
聯系我時,請說是在線纜網上看到的,謝謝!
雄州鎮西門子6ES7953-8LL31-0AA0
MM系列變頻器,MM420/430/440變頻器6fc,6sns120 v10 v60 v80伺服數控備件:原裝進口電機(1la7、1lg4、1la9、1le1),國產電機(1lg0,1le0)大型電機(1la8,1la4,1pq8)伺服電機(1ph,1pm,1ft,1fk,1fs)西門子保內全新原裝產品‘質保一年。
S7-1200 與 S7-300 之間的以太網通信可以通過 UDP 協議來實現,使用的通信指令是在S7-1200 CPU 側調用 T-block ( TCON, TDISCON, TUSEND, TURCV) 指令,在 S7-300 CPU 側調用 AG-SEND, AG-RECV 指令來實現。
所需條件:
① S7-1200/S7-300 CP343-1設備
② STEP7 V11
軟件:
STEP7 V11 or Higher
所完成的通信任務:
① S7-1200 CPU 將通訊數據區 DB4 塊中的 10 個字節的數據發送到 S7-300 CPU 的接收數據區 DB4 塊中。
② S7-300 CPU 將通訊數據區 DB10 塊中的 10 個字節的數據發送到 S7-1200 CPU 的接收數據區 DB10 塊中。
在 STEP7 V11 的 “Portal 視圖” 中選擇 “創建新項目” 創建一個新項目。
然后進入 “項目視圖”,在“項目樹” 下雙擊 “添加新設備”,在對話框中選擇所使用的 S7-1200 CPU 添加到機架上,命名為 1200-AC,如圖1.所示。
圖1. 添加新設備
為了編程方便,使用 CPU 屬性中定義的時鐘位,定義方法如下:
在 “項目樹” > “1200-AC” > “設備組態” 中,選中 CPU ,然后在下面的屬性窗口中,“屬性” > “系統和時鐘存儲器” 下,將系統位定義在 MB1,時鐘位定義在 MB0,如圖2.所示。
時鐘位我們主要使用 M0.3,它是以 2Hz 的頻率在 0 和 1 之間切換的一個位,可以使用它去自動激活發送任務。
圖2. 系統位與時鐘位
在 “設備視圖”中點擊 CPU 上代表 PROFINET 通信口的綠色小方塊,在下方會出現 PROFINET 接口的屬性,在 “以太網地址” 下分配 IP 地址為 192.168.0.123 ,子網掩碼為255.255.255.0,如圖3. 所示。
圖3. 分配IP 地址
① 在 S7-1200 CPU 中調用發送通信指令,進入 “項目樹” > “ 1200-AC” > “程序塊” > “OB1” 主程序中,從右側窗口 “指令” > “通訊” > “開放式用戶通信”下調用 “TCON” 指令,創建連接,如圖4.所示。
圖4. 調用 TCON 通信指令
② 定義 S7-1200 的 “TCON”連接參數
S7-1200 的 “TCON”指令的連接參數需要在指令下方的屬性窗口“屬性”> “組態”>“連接參數中”中設置,如圖5.所示。
圖5. 定義 TCON 連接參數
連接參數說明:
端點 |
:可以通過點擊選擇按鈕選擇“未指定” ; |
連接類型 |
:選擇通信協議為 UDP; |
連接 ID |
:連接的地址 ID 號,這個 ID 號在后面的編程里會用到; |
連接數據 |
:點擊新建自動生成該數據塊; |
主動建立連接 |
:此功能在UDP連接時,不能選擇; |
地址詳細信息 |
:定義本地通信的端口號為:2001。 |
③創建并定義 S7-1200 的發送數據區 DB4 塊
通過“項目樹”>“1200-AC”>“程序塊”>“添加新塊”,選擇“數據塊” 創建 DB4 塊,選擇“標準-與S7-300/400 兼容”,點擊“確定”鍵,定義發送數據區為 9001 個字節的數組,如圖6.所示,結果如圖7.所示。
圖6. 創建發送數據區 DB 塊
圖7. 定義發送數據區為字節類型的數組 9001 字節
④ 定義 UDP 連接參數數據塊
通過“項目樹”>“1200-AC”>“程序塊”>“添加新塊”,選擇“數據塊” 創建 DB 塊,然后在右側“類型”中選擇“TADDR_Param”,如圖8.所示。
圖8. 創建 UDP 連接參數數據塊
創建完 DB 塊后,可以在 DB 塊內,設置通訊伙伴的IP地址與端口號(如對方 300 CPU 的 IP:192.168.0.22,端口號:2001),如圖9.所示。
圖9. UDP 連接詳細參數
⑤調用 “TUSEND” 在 OB1 內調用 發送 10 個字節數據到 300 CPU 中
進入 “項目樹” > “1200-AC” > “程序塊” > “OB1 ” 主程序中,從右側窗口 “指令” > “通訊” > “開放式用戶通信”下調用 “TUSEND” 指令,配置接口參數,如圖10.所示。
圖10. 定義 TUSEND 接口參數
參數說明:
輸入接口參數:
REQ |
:= %M0.3 |
// 使用 2Hz 的時鐘脈沖,上升沿激活發送任務; |
ID |
: = 2 |
// 創建連接 ID; |
LEN |
:= 10 |
// 發送數據長度; |
DATA |
:= P#DB4.DBX0.0 BYTE 10 |
// 發送數據區的數據,使用指針尋址時,DB 塊要選用絕對尋址; |
ADDR |
: = %DB13 |
// UDP 通訊伙伴的連接參數,包括對方 IP 地址及端口; |
輸出接口參數:
DONE |
:= %M204.1 |
// 任務執行完成并且沒有錯誤,該位置 1; |
BUSY |
:= %M204.2 |
// 該位為 1,代表任務未完成,不能激活新任務; |
ERROR |
:= %M204.3 |
// 通信過程中有錯誤發生,該位置 1; |
STATUS |
:= %MW206 |
// 有錯誤發生時,會顯示錯位信息號。 |
⑥創建并定義 S7-1200 的接收數據區 DB10 塊。
通過“項目樹”>“1200-AC”>“程序塊”>“添加新塊”,選擇“數據塊” 創建 DB10 塊,選擇“標準-與S7-300/400 兼容”,點擊“確定”鍵,定義接收數據區為 10 個字節的數組,如圖11.所示,結果如圖12.所示。
圖11. 創建接收數據區 DB10 塊
圖12. 定義接收數據區為字節類型的數組
⑦將 “TURCV” 在 OB1 內調用
進入 “項目樹” > “1200-AC” > “程序塊” > “OB1 ” 主程序中,從右側窗口 “指令” > “通訊” > “開放式用戶通信”下調用 “TURCV” 指令,配置接口參數,如圖13.所示。
圖13. 調用 TURCV 指令并配置接口參數
參數說明:
輸入接口參數:
EN_R |
:= M220.0 |
// 準備好接收數據 M220.0=TRUE; |
ID |
:= 2 |
// 連接號,使用的是 TCON 的連接參數中 ID號; |
LEN |
:= 10 |
// 接收數據長度為 10 個字節; |
DATA |
:= P#DB10.DBX0.0 BYTE 10 |
// 接收數據區的地址; |
ADDR |
: = %DB13 |
// UDP通訊伙伴的連接參數,包括對方IP地址及端口; |
輸出接口參數:
NDR |
:= %M220.1 |
// 該位為 1,接收任務成功完成; |
BUSY |
:= %M220.2 |
// 該位為 1,代表任務未完成,不能激活新任務; |
ERROR |
:= %M220.3 |
// 通信過程中有錯誤發生,該位置 1; |
STATUS |
:= %MW222 |
// 有錯誤發生時,會顯示錯誤信息號; |
RCVD_LEN |
:= %MW224 |
// 實際接收數據的字節數。 |
配置完連接并編譯存盤。
雄州鎮西門子6ES7953-8LL31-0AA0