西門子6ES7953-8LF31-0AA0
6ES7953-8LF31-0AA0
SIMATIC S7,微型存儲卡 用于 S7-300/C7/ET 200, 3,3V Nflash,64 KB
SIEMENS西門子上海朕鋅電氣設備有限公司
:鄭鑫 :
:www.zhenxindianqi。。cn
工作 (同步)
CPU自帶的以太網接口可以使用OPEN IE的方式實現如下協議,分別介紹如下:
• TCP
• UDP
• ISO-on-TCP
注意:以下內容任何用戶可以免費使用,復制和傳遞他人,程序的作者及擁有者不負責軟件的功能性和兼容性,使用者須自己承擔責任,由于內容免費,所以不保證錯誤的更正和支持!
1. TCP通信
1.1通信程序塊的準備
如下的通信塊可以用來建立TCP通信,您需要把這些程序塊拷貝到您的項目中:
1) FB65 "TCON" 用于建立連接,連接時需要UDT65來提供參數
2) FB66 "TDISCON" 用于斷開連接
3) FB63 "TSEND" 用于發送數據到S7站點、S5站點、PC站或者第三方設備
4) FB64 "TRCV" 用于從S7站點、S5站點、PC站或者第三方設備接收數據
5) UDT65 "TCON_PAR"存放用戶通信參數
6) FC97 "SET_TCP_ENDPOINTx" 用于修改UDT65類型變量內通信對象參數
FB63,64,65,66這四個功能塊可以在Standard Library -> Communication Blocks里得到:
圖 01: FB63,64,65,66
FC97與UDT65需要從如下項目中打開獲得:
( 42 KB )
圖 02: FC97與UDT65
首先建立一個S7-300或者S7-400站,拷貝如上程序塊到項目中。
1.2通信程序編寫
1.2.1 生成數據塊
在程序中生成一個DB塊,塊號不限(本例為DB101),在塊中建立變量DB_VAR,類型為UDT65
圖 03: 生成UDT65類型變量
1.2.2在OB1中編程
首先調用FC97 "SET_TCP_ENDPOINTx"
圖 04: 調用FC97
FC97參數說明如下:
• ID: 連接ID
• DEV_ID
DEV_ID = B#16#1 用于本PLC型號(注意不是通信對方)為 IM151-8 PN/DP CPU
DEV_ID = B#16#2 用于本PLC型號(注意不是通信對方)為 CPU31x-2PN/DP或IM154-8 CPU
DEV_ID = B#16#3 用于本PLC型號(注意不是通信對方)為 CPU319-3PN/DP
DEV_ID = B#16#5用于本PLC型號(注意不是通信對方)為 CPU41x-3PN/DP
• ACTIVE: 主動或是被動建立連接,通信雙方必須一個主動,一個被動
• LOC_PORT: CPU本地的TCP端口
• REM_PORT: 通信伙伴的TCP遠程端口
• IP_ADDR1 ... IP_ADDR4: 通信伙伴的IP地址
• V23:本機是否是CPU31x-2PN/DP FIRMWARE 版本為2.3或以下版本
• CON_DB:用UDT65生成的變量
圖05: 調用FB65 "T_CON"
調用FB65 ,通過提供給FB65的輸入參數"REQ"一個上升沿來建立連接。 “ID”為連接ID,“CONNECT”參數填寫用UDT65生成的變量, 連接建立后會一直保持,直到調用FB66 "TDISCON"斷開連接,CPU停止或者斷電。
1.2.3 調用發送和接收程序
圖06: 調用 FB63,64發送接收數據
FB63 "TSEND" 發送請求依靠輸入參數"REQ"的上升沿來實現,如果“BUSY”位為true時不要觸發"REQ"。輸出參數 "DONE", "ERROR" 和 "STATUS" 用于評估工作的情況。
FB64 "TRECV" 用于接收數據,EN_R始終為true, “ID “填寫連接ID,”DATA”填寫接收數據區,輸出參數"NDR" 用于表示新的數據已經收到,輸出參數"LEN" 表示接收的數據長度。
1.2.4斷開連接
調用FB66 "TDISCON",“ID “填寫連接ID,輸入參數"REQ"的上升沿來實現斷開連接操作。
圖 07: 調用FB66 "TDISCON"
2. UDP通信
2.1通信程序塊的準備
如下的通信塊可以用來建立UDP通信,您需要把這些程序塊拷貝到您的項目中:
1) FB65 "TCON" 用于建立連接,連接時需要UDT65來提供參數
2) FB66 "TDISCON" 用于斷開連接
3) FB67 "TUSEND"用于發送數據到S7站點、S5站點、PC站或者第三方設備
4) FB68 "TURCV"用于從S7站點、S5站點、PC站或者第三方設備接收數據
5) UDT65 "TCON_PAR"存放用戶通信參數
6) UDT66 "TADDR_PAR"存放用戶通信參數
7) FC95"SET_UDP_ENDPOINT"用于建立本地UDP通信參數
8) FC96"SET_UDP_REMOTE"用于建立遠程UDP通信參數
FB65,66,67,68這四個功能塊可以在Standard Library -> Communication Blocks里得到:
圖 08: FB65,66,67,68
FC95,96與UDT65,66需要從如下項目中打開獲得:
( 41 KB )
圖 09: FC95,96與UDT65,66
首先建立一個S7-300或者S7-400站,拷貝如上程序塊到項目中。
2.2通信程序編寫
2.2.1 生成數據塊
然后在程序中生成一個DB塊,塊號不限(本例為DB101),在塊中建立變量DB_VAR,類型為UDT65
圖 10: 生成UDT65類型變量
然后在程序中生成另一個DB塊,塊號不限(本例為db102),在塊中建立變量DB_VAR,類型為UDT66
圖 11: 生成UDT66類型變量
2.2.2在OB1中編程
首先調用FC95,96
圖 12:調用FC95,96
定義的本地UDP端點連接參數:
通過FC95 "SET_UDP_ENDPOINT"設置,下列參數需要考慮:
• ID: 連接ID
• DEV_ID
DEV_ID = B#16#1 用于本PLC型號(注意不是通信對方)為 IM151-8 PN/DP CPU
DEV_ID = B#16#2 用于本PLC型號(注意不是通信對方)為 CPU31x-2PN/DP或IM154-8 CPU
DEV_ID = B#16#3 用于本PLC型號(注意不是通信對方)為CPU319-3PN/DP
DEV_ID = B#16#5用于本PLC型號(注意不是通信對方)為CPU41x-3PN/DP
• LOC_PORT: CPU本地的TCP端口
通過FC96 "SET_UDP_REMOTE"定義遠端的UDP端點. 下列參數需要考慮:
REM_PORT: 通信方端口號
IP_ADDR1 ... IP_ADDR4: 通信方IP地址
圖 13: 調用FB65 "T_CON"
調用FB65 ,通過提供給FB65的輸入參數"REQ"一個上升沿來建立連接。 “ID”為連接ID,“CONNECT”參數填寫用UDT65生成的變量, 連接建立后會一直保持,直到調用FB66 "TDISCON"斷開連接,CPU停止或者斷電。
2.2.3 調用發送和接收程序
圖 14: 調用FB67,68接收和發送數據
FB67 "TUSEND"發送請求依靠輸入參數"REQ"的上升沿來實現,如果“BUSY”位為true時不要觸發"REQ"。輸出參數 "DONE", "ERROR" 和 "STATUS" 用于評估工作的情況。"ADDR"填寫UDT66生成的變量。
FB68 "TURCV" 用于接收數據,EN_R始終為true, “ID “填寫連接ID,”DATA”填寫接收數據區,輸出參數"NDR" 用于表示新的數據已經收到,輸出參數"LEN" 表示接收的數據長度。"ADDR"填寫UDT66生成的變量。
2.2.4斷開連接
調用FB66 "TDISCON",“ID “填寫連接ID,輸入參數"REQ"的上升沿來實現斷開連接操作。
圖 15: 調用FB66 "TDISCON"
3. ISO ON TCP通信
3.1通信程序塊的準備
如下的通信塊可以用來建立ISO ON TCP通信,您需要把這些程序塊拷貝到您的項目中:
1) FB65 "TCON" 用于建立連接,連接時需要UDT65來提供參數
2) FB66 "TDISCON" 用于斷開連接
3) FB63 "TSEND" 用于發送數據到S7站點、S5站點、PC站或者第三方設備
4) FB64 "TRCV" 用于從S7站點、S5站點、PC站或者第三方設備接收數據
5) UDT65 "TCON_PAR"存放用戶通信參數
6) FB420 "SET_ISO_ENDPOINT" 用于修改UDT65內通信對象參數
7) FC21 被FB420調用
FB63,64,65,66這四個功能塊可以在Standard Library -> Communication Blocks里得到:
圖 16: FB63,64,65,66
FB420 FC21與UDT65需要從如下項目中打開獲得:
( 50 KB )
圖 17: FB420 FC21與UDT65
首先建立一個S7-300或者S7-400站,拷貝如上程序塊到項目中。
3.2通信程序編寫
3.2.1 生成數據塊
在程序中生成一個DB塊,塊號不限(本例為DB101),在塊中建立變量DB_VAR,類型為UDT65
圖 18: 生成UDT65類型變量
3.2.2在OB1中編程
首成一個FB塊,本例為FB400:
在靜態變量區建立一個結構“T_TSAP“,包含如下變量:
1) LOC_RACK_SLOT (BYTE)= B#16#2 表示有兩個前導字符 0xE0 (CPU31x-2PN/DP 或者 CPU319-3PN/DP規定)和 0x02(CPU槽號)
本地 TSAP | 遠程TSAP | |
ASCII | TCP-1 | TCP-1 |
Hexadecimal | E0.02.54.43.50.2D.31 | 54.43.50.2D.31 |
2) LOC_TSAP(STRING14)= 本地用戶定義的ASCII字符 (默認 -> 'TCP-1')
3) REM_RACK_SLOT(BYTE)= B#16#0 不使用兩個前導符,只適用于第三方設備!如果是西門子PLC作為通信對象,則需要根據實際情況填寫CPU 槽號,例如B#16#2
4) REM_TSAP (STRING16)= 遠程用戶定義的ASCII字符(默認 -> 'TCP-1'):
圖 19: 生成T_TSAP結構
調用FB420
圖 20: 調用FB420
• ID: 連接ID
• DEV_ID
DEV_ID = B#16#1 用于本PLC型號(注意不是通信對方)為 IM151-8 PN/DP CPU
DEV_ID = B#16#2 用于本PLC型號(注意不是通信對方)為 CPU31x-2PN/DP或IM154-8 CPU
DEV_ID = B#16#3 用于本PLC型號(注意不是通信對方)為CPU319-3PN/DP
DEV_ID = B#16#5用于本PLC型號(注意不是通信對方)為CPU41x-3PN/DP
• ACTIVE: 主動或是被動建立連接, 通信雙方必須一個主動,一個被動
• T_TSAP: 靜態變量區的結構變量,用于ISO ON TCP 通信的TSAP地址
• IP_ADDR1 ... IP_ADDR4: 通信伙伴的IP地址
• CON_DB:用UDT65生成的變量
圖21: 調用FB65 "T_CON"
調用FB65 ,通過提供給FB65的輸入參數"REQ"一個上升沿來建立連接。 “ID”為連接ID,“CONNECT”參數填寫用UDT65生成的變量, 連接建立后會一直保持,直到調用FB66 "TDISCON"斷開連接,CPU停止或者斷電。
3.2.3 調用發送和接收程序
圖22: 調用 FB63,64發送接收數據
FB63 "TSEND" 發送請求依靠輸入參數"REQ"的上升沿來實現,如果“BUSY”位為true時不要觸發"REQ"。輸出參數 "DONE", "ERROR" 和 "STATUS" 用于評估工作的情況。
FB64 "TRECV" 用于接收數據,EN_R始終為true, “ID “填寫連接ID,”DATA”填寫接收數據區,輸出參數"NDR" 用于表示新的數據已經收到,輸出參數"LEN" 表示接收的數據長度。
3.2.4斷開連接
調用FB66 "TDISCON",“ID “填寫連接ID,輸入參數"REQ"的上升沿來實現斷開連接操作。
圖 23: 調用FB66 "TDISCON"
1.實驗環境
實驗環境,見表1。
序號 | 名稱 | 訂貨號 |
1 | CP5611 | 6GK1561-1AA01 |
2 | CPU224XP | 6ES7214-2AD23-0XB0 |
3 | PROFIBUS | 標準電纜 6XV1 830-0EH10 |
4 | RS485總線連接器 | 6ES7972-0BB42-0XA0 |
5 | SIMATIC NET PC Software V7.1 SP2 | |
6 | STEP7 Professional 2010 SR2 (V5.5 SP2) | |
7 | Windows XP Professional SP3 |
表1
2.組態
2.1配置PC站的硬件機架
PC站的硬件機架配置參見表2.
序號 | 說明 | 圖示 |
1. | SIMATIC NET軟件成功安裝后,在任務欄(Taskbar)中會有Station Configuration Editor圖標 | ![]() |
2. | 雙擊圖標打開Station Configuration Editor 配置對話框 | ![]() |
3. | 選擇1號插槽,鼠標右鍵選擇Add添加 | ![]() |
4. | 在添加組件窗口中選擇OPC Server,點擊OK即完成 | ![]() |
5. | 選擇3號槽,鼠標右鍵選擇Add添加 | ![]() |
6. | 在添加組件窗口中選擇CP5611,點擊OK | ![]() |
7. | CP5611的參數設置: a) 地址設置為 4 b) 波特率設置為187.5K c) Bus profile設置為 Standard | ![]() |
8. | 點擊Station name按鈕,PC站的名稱。這里命名為“MPIOPC”。點擊OK | ![]() |
西門子6ES7953-8LF31-0AA0
表2
2.2 在Step7中組態PC Station
在Step7中組態PC Station參見表3.
序號 | 說明 | 圖示 |
1. | 創建新項目并在項目中插入PC站點 | ![]() |
2. | 將PC Station默認名稱“SIMATIC PC Station(1)”,修改為“MPIOPC”,必需與Station Configuration Editor中所命名的Station Name名稱相同 | ![]() |
3. | 打開硬件組態 | ![]() |
4. | 在硬件目錄窗口中,鼠標左鍵選擇與安裝的Simatic net軟件版本相符的硬件,拖拽到與在Station Configuration Editor配置的PC 硬件機架相對應的1號插槽中。 | ![]() |
5. | 在硬件目錄中,鼠標左鍵選中要組態的CP5611,拖拽到與在Station Configuration Editor配置的PC 硬件機架相對應的3號插槽中。 | ![]() |
6. | 配置CP5611網絡參數。在CP5611屬性對話框中,選擇與Station Configurator中相同的MPI地址4,單擊OK。 | ![]() |
7. | 雙擊CP5611,在彈出的CP5611屬性對話框的Interface Type下拉框中選擇MPI,點擊Properties | ![]() |
8. | 在接口設置對話框的Address下拉框中選擇4,點擊Properties | ![]() |
9. | 在MPI屬性對話框中,Network Settings標簽下選擇187.5K, | ![]() |
10. | 編譯保存PC站點硬件組態 | ![]() |
11. | 從菜單欄Option下Configure Network命令進入網絡組態界面 | ![]() |
12. | 如右圖所示,右鍵單擊OPC Server,在彈出對話框中選擇Insert New Connection命令,插入一個新連接 | ![]() |
13. | a) 選擇Unspecified連接伙伴, b) 連接類型菜單中選擇S7 connection,單擊OK按鈕,彈出S7 connection屬性對話框 | ![]() |
14. | S7 connection屬性對話框設置: 設置伙伴S7-200PLC的MPI地址2,點擊Address Details按鈕 | ![]() |
15. | Address Details對話框中設置機架號和插槽號如右圖(Rack/Slot)必須是0,通信伙伴的TSAP必須為03.00。設置完成后點擊OK確認 | ![]() |
16. | 確認所有對話框后,已建好的S7連接就會顯示在連接列表中。點擊編譯存盤按鈕,如得到No error的編譯結果,則正確組態完成 | ![]() |
表3.
2.3組態下載
組態的下載參見表4.
序號 | 說明 | 圖示 |
1. | 打開設置PG/PC接口,選擇PC internal(local) | ![]() |
2. | NetPro中的站點出現黃色箭頭標識 | ![]() |
3. | 在NetPro窗口點擊功能按鈕欄中下載按鈕將組態下載到PC站中 | ![]() |
4. | 下載完成后,可以打開Station Configuration Editor窗口檢查組件狀態。右圖為正確狀態顯示畫面。OPC Server插槽Conn一欄出現連接圖標,說明OPC server下至少組態了一個連接。 | ![]() |
表4.
2.4數據通訊的測試—OPC Scout
OPC Scout工具隨Simatic Net軟件一起提供,當完成PC Station組態下載后,可用此工具進行OPC Server和PLC的數據通訊測試。參見表5.
序號 | 說明 | 圖示 |
1. | 按照以下路徑打開OPC Scout:Start→All Programs→Simatic→SIMATIC NET→OPC Scout | ![]() |
2. | 在OPC Scout界面,雙擊“OPC.SimaticNET” | ![]() |
3. | 在隨之彈出的“Add Group”對話框中輸入組名,本例命名為“OPC_MPI”。點擊OK確認 | ![]() |
4. | 雙擊已添加的連接組 | ![]() |
5 | 在彈出的OPC Navigator對話框中雙擊S7,再雙擊S7 connection_1,然后雙擊objects,即出現可訪問的對象樹(objects tree) | ![]() |
6 | 雙擊任意所需訪問的PLC數據區都可以建立標簽變量。這里以DB區為例。雙擊“New Definition”,“Define New Item”對話框即被打開。 | ![]() |
7 | 在“Define New Item”對話框中定義標簽變量與數據類型。 a):Datatype設置數據類型 b):Address設置首地址 c):No.Value設置數據長度。定義完成后,點擊OK確認。 | ![]() |
8 | 新定義的條目顯示在OPC Navigator的中間窗口。點擊“→”就可將此條目移到OPC-Navigator的右側窗口,再點擊OK按鈕就可將此條目連接到OPC Server | ![]() |
9 | 上一步確認后,所定義的條目(Item)即嵌入到OPC Scout中。如果“Quality”顯示“good”,則OPC Server與PLC的S7連接已經建立,也就意味著可以對標簽變量進行讀寫操作。 | ![]() |
10 | 雙擊條目的“Value”欄,即可在“Write Value(s) to the Item(s)”窗口中對有關條目進行寫操作。 | ![]() |
表5
S7300電源模板
6ES7307-1BA00-0AA0
6ES7307-1EA00-0AA0
6ES7307-1KA01-0AA0
CPU
6ES7312-1AE13-0AB0
6ES7312-5BE03-0AB0
6ES7313-5BF03-0AB0
6ES7313-6BF03-0AB0
6ES7313-6CF03-0AB0
6ES7314-1AG13-0AB0
6ES7314-6BG03-0AB0
6ES7314-6CG03-0AB0
6ES7315-2AG10-0AB0
6ES7315-2EH13-0AB0
6ES7317-2AJ10-0AB0
6ES7317-2EK13-0AB0
6ES7318-3EL00-0AB0
內存卡
6ES7 953-8LF20-0AA0
6ES7 953-8LG11-0AA0
6ES7 953-8LJ20-0AA0
6ES7 953-8LL20-0AA0
6ES7 953-8LM20-0AA0
6ES7 953-8LP20-0AA0
開關量模板
6ES7 321-1BH02-0AA0
6ES7 321-1BH10-0AA0
6ES7 321-1BH50-0AA0
6ES7 321-1BL00-0AA0
6ES7 321-7BH01-0AB0
6ES7 321-1EL00-0AA0
6ES7 321-1FF01-0AA0
6ES7 321-1FF10-0AA0
6ES7 321-1FH00-0AA0
6ES7 321-1CH00-0AA0
6ES7 321-1CH20-0AA0
6ES7 322-1BH01-0AA0
6ES7 322-1BH10-0AA0
6ES7 322-1CF00-0AA0
6ES7 322-8BF00-0AB0
6ES7 322-5GH00-0AB0
6ES7 322-1BL00-0AA0
6ES7 322-1FL00-0AA0
6ES7 322-1BF01-0AA0
6ES7 322-1FF01-0AA0
6ES7 322-5FF00-0AB0
6ES7 322-1HF01-0AA0
6ES7 322-1HF10-0AA0
6ES7 322-1HH01-0AA0
6ES7 322-5HF00-0AB0
6ES7 322-1FH00-0AA0
6ES7 323-1BH01-0AA0
6ES7 323-1BL00-0AA0
模擬量模板
6ES7 331-7KF02-0AB0
6ES7 331-7KB02-0AB0
6ES7 331-7NF00-0AB0
6ES7 331-7NF10-0AB0
6ES7 331-7HF01-0AB0
6ES7 331-1KF01-0AB0
6ES7 331-7PF01-0AB0
6ES7 331-7PF11-0AB0
6ES7 332-5HD01-0AB0
6ES7 332-5HB01-0AB0
6ES7 332-5HF00-0AB0
6ES7 332-7ND02-0AB0
6ES7 334-0KE00-0AB0
6ES7 334-0CE01-0AA0
附件
6ES7 365-0BA01-0AA0
6ES7 360-3AA01-0AA0
6ES7 361-3CA01-0AA0
6ES7 368-3BB01-0AA0
6ES7 368-3BC51-0AA0
6ES7 368-3BF01-0AA0
6ES7 368-3CB01-0AA0
6ES7 390-1AE80-0AA0
6ES7 390-1AF30-0AA0
6ES7 390-1AJ30-0AA0
6ES7 390-1BC00-0AA0
6ES7 392-1AJ00-0AA0
6ES7 392-1AM00-0AA0
6ES7 392-1BM01-0AA0
功能模板
6ES7 350-1AH03-0AE0
6ES7 350-2AH00-0AE0
6ES7 351-1AH01-0AE0
6ES7 352-1AH02-0AE0
6ES7 355-0VH10-0AE0
6ES7 355-1VH10-0AE0
6ES7 355-2CH00-0AE0
6ES7 355-2SH00-0AE0
6ES7 338-4BC01-0AB0
6ES7 352-5AH00-0AE0
6ES7 352-5AH00-7XG0
通訊模板
6ES7 340-1AH02-0AE0
6ES7 340-1BH02-0AE0
6ES7 340-1CH02-0AE0
6ES7 341-1AH01-0AE0
6ES7 341-1BH01-0AE0
6ES7 341-1CH01-0AE0
6ES7 870-1AA01-0YA0
6ES7 870-1AB01-0YA0
6ES7 902-1AB00-0AA0
6ES7 902-1AC00-0AA0
6ES7 902-1AD00-0AA0
6ES7 902-2AB00-0AA0
6ES7 902-2AC00-0AA0
6ES7 902-2AG00-0AA0
6ES7 902-3AB00-0AA0
6ES7 902-3AC00-0AA0
6ES7 902-3AG00-0AA0
6GK7 342-5DA02-0XE0
6GK7 342-5DF00-0XE0
6GK7 343-5FA01-0XE0
6GK7 343-1EX30-0XE0
6GK7 343-1EX21-0XE0
6GK7 343-1CX00-0XE0
6GK7 343-1CX10-0XE0
6GK7 343-1GX20-0XE0
6GK7 343-1GX21-0XE0
6GK7 343-1HX00-0XE0
6GK7 343-2AH00-0XA0
6ES7971-1AA00-0AA0
6ES7971-5BB00-0AA0
6ES7314-6EH04-0AB0