自動化技術(shù)
1.SIMOTION工業(yè)以太網(wǎng)網(wǎng)絡(luò)介質(zhì)
西門子工業(yè)以太網(wǎng)網(wǎng)絡(luò)通常使用的物理傳輸介質(zhì)為屏蔽雙絞線(FC TP),、工業(yè)屏蔽雙絞線(ITP)和光纖,。
1.1 屏蔽雙絞線(Fast Connection Twist Pair)
FC TP快速連接雙絞線用于將DTE快速連接到工業(yè)以太網(wǎng)上,配合西門子FC TP RJ45接頭使用,,連接方式如圖1所示:

圖1: FC TP電纜與TP RJ45接頭
將雙絞線按照TP RJ45接頭標(biāo)示的顏色插入連接孔中,,快捷,、方便地將DTE設(shè)備連接到工業(yè)以太網(wǎng)上。使用FC雙絞線從DTE到交換機最長通信距離為100米(DTE到DTE),。也可以使用普通RJ45接頭,,為了保證數(shù)據(jù)傳輸?shù)目煽啃裕跓o干擾情況下最長通信距離為5米,。
RJ-45連接有兩種連接方式,,交叉連接(如圖2所示)和直通連接(如圖3所示)。交叉連接用于網(wǎng)卡之間的連接或集線器之間的連接,;直通線用于網(wǎng)卡與集線器之間或網(wǎng)卡與交換機之間的連接,。Siemens交換機由于采用了自適應(yīng)技術(shù),可以自動檢測線序,,故通過交換機可以選擇任意一種電纜進行連接,。

圖2 交叉線連接

圖3 直通線連接
SIMOTION 帶有RJ45接頭,建議使用西門子FC TP和FC TP RJ45接頭,。
1.2 工業(yè)屏蔽雙絞線 (Industrial Twisted Pair)
屏蔽雙絞線如圖4所示,,它有白/藍和白/橙兩對雙絞屏蔽線。外部包有屏蔽層和絕緣層,,用于連接有ITP端口的以太網(wǎng)設(shè)備,。通過ITP電纜連接的兩個設(shè)備的最遠距離為100米。

圖4 ITP電纜結(jié)構(gòu)圖
連接ITP電纜的連接頭有兩種,,即 9 針或 15 針的Sub-D 接頭,,如圖所示5、6:

圖5 Sub-D 9針接頭 圖6 Sub-D 15針接頭
使用Sub-D 接頭進行連接的網(wǎng)絡(luò)連接牢固,,不易松動,。其連線方法及9/15 接頭的轉(zhuǎn)換可以查閱西門子手冊 。同樣ITP 電纜也會有交叉連接的情況,,可以直接定購 ITP XP 標(biāo)準電纜 ,。
SIMOTION只有RJ45以太網(wǎng)接口,通常不使用工業(yè)雙絞線ITP,。
1.3光纖
按光在光纖中的傳輸模式不同,,光纖可分為單模光纖和多模光纖。
多模光纖:中心玻璃芯較粗(50或62.5μm),,可傳多種模式的光,。但其模間色散較大,這就限制了傳輸數(shù)字信號的頻率,,而且隨距離的增加會更加嚴重。例如:600MB/KM的光纖在2KM時則只有300MB的帶寬了,。因此,,多模光纖傳輸?shù)木嚯x就比較近,,一般只有幾公里。
單模光纖:中心玻璃芯較細(芯徑一般為9或10μm),,只能傳一種模式的光,。因此,其模間色散很小,,適用于遠程通訊,,但其色度色散起主要作用,這樣單模光纖對光源的譜寬和穩(wěn)定性有較高的要求,, 即譜寬要窄,,穩(wěn)定性要好。
光纖技術(shù)只允許點對點的連接,,即一個發(fā)送裝置只對應(yīng)一個接收裝置,。因而兩個站點之間需要有發(fā)送和接收兩根光纖進行連接。所有SIMATIC NET 標(biāo)準的光纜都是兩根光纖,。光纖的連接頭有很多種如圖7所示:

圖7 光纖的連接頭
其中各種連接頭都有各自的優(yōu)點,,例如:ST 連接頭安裝簡易,比較適合于現(xiàn)場連接,,(西門子BFOC接頭就是ST 接頭),;FC 接頭有一個不固定的套環(huán),可以提供較好的機械的隔離,;SC 連接頭適合緊密連接,,其推拉設(shè)計可以避免在安裝過程中的光纖平面受損,應(yīng)用比較普遍,。在西門子的網(wǎng)絡(luò)設(shè)備中,,大多光纖鏈路設(shè)備使用BFOC接頭。
光纖通訊應(yīng)用于工業(yè)以太網(wǎng)的優(yōu)點:
隔離電氣的站點或網(wǎng)段
沒有電氣的接地問題
沒有屏蔽電流
數(shù)據(jù)傳輸不受外界電磁干擾
不受雷電的影響
不會產(chǎn)生電磁干擾
重量輕
根據(jù)光纖的類型不同,,長距離的通訊依然可以保持高的通訊波特率
帶有RJ45接頭的SIMOTION 可以直接連接到交換機的電氣接口上,,交換機之間可以通過光纖連接,增加通信距離和抗干擾性,。
2.SIMOTION工業(yè)以太網(wǎng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)
通過西門子交換機組成的以太網(wǎng)有三種網(wǎng)絡(luò)拓撲結(jié)構(gòu):1)總線型,;2)星型;3)冗余環(huán)網(wǎng),。圖8所示為SCALANCE 200組成的冗余環(huán)網(wǎng),。

圖8 冗余環(huán)網(wǎng)示例
3.配置SIMOTION以太網(wǎng)接口
3.1在硬件配置中設(shè)定以太網(wǎng)接口
在SCOUT界面中點擊SIMOTION CPU,右鍵點擊“Open HW configuration”進入硬件配置界面,,例如D435,,X120和X130為以太網(wǎng)接口,雙擊選擇的通信接口,,在彈出的界面中定義IP地址和子網(wǎng)掩碼,,如圖9所示:

圖9 設(shè)定通信接口
注意:
即使建立兩條以太網(wǎng),,兩個以太網(wǎng)通信接口不能設(shè)置在相同的網(wǎng)段中或相同的IP地址。
3.2 在線聯(lián)機設(shè)定以太網(wǎng)接口
將編程器連接到SIMOTION 以太網(wǎng)接口上,,在控制面板“Setting the PG/PC Interface”接口中將訪問點指向使用的編程網(wǎng)卡例如“S7ONLINE(STEP7)->TCP/IP -> Intel(R) PRO/1000 MT ”,。打開SIMATIC Manager,使用菜單命令“PLC”->“Edit Ethernet Nodes”在界面中選擇“Browse”鍵瀏覽網(wǎng)絡(luò)上所有的站點,,如圖10所示:

圖10 瀏覽網(wǎng)絡(luò)上的站點
每一個接口在硬件的前面板標(biāo)有網(wǎng)卡的MAC地址,,選擇站點,在“Edit Ethernet Nodes”界面中設(shè)置IP地址和子網(wǎng)掩碼,,點擊“Assign IP Configuration”鍵傳送設(shè)定的命令,。如圖11所示:

圖11設(shè)置站點地址
IP地址設(shè)置完成后,可以使用以太網(wǎng)接口編程,。
4.編寫通信程序
通過以太網(wǎng)進行站點間的通信有兩種方式:1)UDP,;2)TCP。
4.1 UDP通信方式
UDP通信協(xié)議不需要在通信前建立連接,,在發(fā)送和接收的數(shù)據(jù)報文中帶有通信方的IP地址和端口號,。通信函數(shù)存儲于在“Communication”->“Data transfer”目錄下,在發(fā)送方調(diào)用發(fā)送函數(shù)的示例程序如圖12所示(使用LAD編寫):

圖12 UDP發(fā)送程序
發(fā)送函數(shù)參數(shù)解釋如下:
SourcePort
發(fā)送方的端口號,,數(shù)據(jù)類型UINT,,例如2001。
DestinationAddress
接收方的IP地址,,數(shù)據(jù)類型為數(shù)組,,ARRAY [0..3] OF USINT,在4個字節(jié)中輸入接收方的IP地址,,例如192,、168、0,、122,,表示IP地址為192.168.0.122。
DestinationPort
接收方的端口號,,數(shù)據(jù)類型UINT,,例如2000。
CommunicationMode
通信模式,,“EnumUdpCommunicationMode”枚舉數(shù)據(jù)類型,,有兩種選擇:
(1)“CLOSE_ON_EXIT”,通信完成后釋放通信資源,;
(2) “DO_NOT_CLOSE_ON_EXIT”,, 通信完成后仍占用通信資源。
DataLength
發(fā)送的數(shù)據(jù)長度,數(shù)據(jù)類型UDINT,,最大長度1400字節(jié),。
Data
發(fā)送數(shù)據(jù)區(qū),數(shù)據(jù)類型為數(shù)組,,ARRAY [0..1399] OF BYTE。
OUT
發(fā)送函數(shù)狀態(tài)信息,,數(shù)據(jù)類型DINT,。
在數(shù)據(jù)接收方調(diào)用接收函數(shù)的示例程序如圖13所示:

圖13 UDP接收程序
接收函數(shù)參數(shù)解釋如下:
Port
定義本方的端口號,數(shù)據(jù)類型為UINT,。定義的端口號必須與發(fā)送方參數(shù)“DestinationPort”的端口號相同,。
CommunicationMode
通信模式,與發(fā)送函數(shù)通信模式相同,。
NextCommand
枚舉數(shù)據(jù)類型,,元素中包括“IMMEDIATELY ”、“WHEN_COMMAND_DONE”和“ABORT_CURRENT_COMMAND”,。
“IMMEDIATELY”:接收命令與后續(xù)所要執(zhí)行的命令同步執(zhí)行,。
“WHEN_COMMAND_DONE”:接收命令執(zhí)行或失敗后執(zhí)行后續(xù)的命令,異步執(zhí)行,。
“ABORT_CURRENT_COMMAND”:終止當(dāng)前的任務(wù)后執(zhí)行執(zhí)行后續(xù)的命令,。
ReceiveVariable
數(shù)據(jù)接收區(qū),數(shù)據(jù)類型為數(shù)組,,ARRAY [0..1399] OF BYTE,。
OUT
接收函數(shù)信息,包括接收數(shù)據(jù)的源地址和端口,、狀態(tài)信息等,,數(shù)據(jù)類型為結(jié)構(gòu)體,接收函數(shù)信息參考表1:
表1:接收函數(shù)信息
結(jié)構(gòu) | 名稱 | 數(shù)據(jù)類型 |
函數(shù)調(diào)用信息 | 結(jié)果 | DINT |
數(shù)據(jù)源地址 | 發(fā)送方IP地址 | ARRAY [0..3] OF USINT |
數(shù)據(jù)源端口 | 發(fā)送方端口 | UINT |
接收數(shù)據(jù)長度 | 接收到有效字節(jié)數(shù) | UDINT |
4.2 TCP通信方式
TCP通信方式在發(fā)送接收數(shù)據(jù)前必須建立通信連接,,連接需要在通信雙方編程建立,。主動連接的一方作為客戶端,被動連接的一方作為服務(wù)器,。下面以SIMOTION D435與S7-300 CP343-1通信為例介紹TCP通信方式,。
4.2.1在PLC側(cè)建立通信連接
在STEP7項目下創(chuàng)建S7-300站點,插入以太網(wǎng)通信處理器CP343-1,,選擇與SIMOTION在相同的網(wǎng)絡(luò)上,。在NETPRO中點擊CPU,在下面的連接表中插入一個連接如圖14所示:
銷售西門子RS485DP接頭
圖14 建立TCP連接
連接的站點選擇“Unspecified”,,連接方式選擇“TCP connection”,,點擊“Apply”鍵確認進入連接屬性界面,如圖15所示:

圖14 配置TCP常規(guī)信息
在“General Information”欄中,“Block Parameters”參數(shù)顯示CP343-1的地址及連接號,,這兩個參數(shù)也是PLC調(diào)用發(fā)送和接收通信功能塊賦值參數(shù),。“Active connection establishment”選項決定通信雙方哪一個是主動連(客戶端),哪一個是被動連接(數(shù)據(jù)服務(wù)器),。選擇該選項為主動連接,,在SIMOTION 側(cè)需要調(diào)用函數(shù)“_tcpOpenServer”與PLC建立連接,如果沒有選擇該選項為被動連接,,在SIMOTION 側(cè)需要調(diào)用函數(shù)“_tcpOpenClient” 與PLC建立連接,。本例中選擇PLC為數(shù)據(jù)服務(wù)器,SIMOTION為客戶端,。
點擊“Address”欄配置SIMTION的IP地址及端口號,,如圖15所示:

圖15 配置通信方IP地址
配置完成后將配置選項下載到PLC中。
4.2.2在SIMOTION側(cè)建立通信連接
與PLC在NETPRO中創(chuàng)建連接不同,,在SIMOTION側(cè)需要調(diào)用函數(shù)建立連接,,通信函數(shù)存儲于在“Communication”->“Data transfer”目錄下,函數(shù)調(diào)用的示例程序參考圖16:

圖16 SIMOTION側(cè)建立TCP連(客戶端)
函數(shù)參數(shù)解釋如下:
Port
SIMOTION 端口號,,數(shù)據(jù)類型UINT,,在NETPRO中定義為2001。
ServerAddress
PLC的IP地址,,數(shù)據(jù)類型為數(shù)組,,ARRAY [0..3] OF USINT,在4個字節(jié)中輸IP地址,,例如192,、168、1,、112,,表示IP地址為192.168.1.112。
ServerPort
PLC的端口號,,數(shù)據(jù)類型UINT,,例子程序中在NETPRO定義為2000。
NextCommand
枚舉數(shù)據(jù)類型,,元素中包括“IMMEDIATELY ”,、“WHEN_COMMAND_DONE。
“IMMEDIATELY”:接收命令與后續(xù)所要執(zhí)行的命令同步執(zhí)行,。
“WHEN_COMMAND_DONE”:接收命令執(zhí)行或失敗后執(zhí)行后續(xù)的命令,,異步執(zhí)行。
OUT
調(diào)用函數(shù)返回信息,,包括調(diào)用狀態(tài)和連接號,。數(shù)據(jù)類型為結(jié)構(gòu)體(StructRetTcpOpenClient),,返回信息參考表2:
表2:TCP 客戶端連接函數(shù)返回信息
結(jié)構(gòu) | 名稱 | 數(shù)據(jù)類型 |
functionResult | 狀態(tài)信息,可以查看通信連接是否建立 | DINT |
connectionId | 連接號,,用于發(fā)送和接收函數(shù)的參數(shù)賦值 | DINT |
連接函數(shù)調(diào)用一次,,得到連接號后停止調(diào)用。
注意:此函數(shù)調(diào)用需用上升沿信號進行使能,。
4.2.3在PLC側(cè)編寫通信程序
通信連接建立后,,在通信雙方需要編寫通信函數(shù)或通信功能塊。在S7-300 PLC側(cè)OB35中(間隔發(fā)送)調(diào)用發(fā)送功能塊FC5 AG_SEND(“Libraries”->“Standard Library”->“SIMATIC_NET_CP”->“CP300”,,示例程序如下:
CALL "AG_SEND"
ACT :=TRUE
ID :=1
LADDR :=W#16#100
SEND :=P#DB1.DBX 0.0 BYTE 60
LEN :=60
DONE :=M1.2
ERROR :=M1.3
STATUS:=MW2
通信函數(shù)FC5的參數(shù)含義:
ACT :為1觸發(fā),。
ID :參考本地CPU連接表中的塊參數(shù)。
LADDR :參考本地CPU連接表中的塊參數(shù),。
SEND : 發(fā)送區(qū)。最大通信數(shù)據(jù)為8192字節(jié),。與SIMOTION之間最大4096個字節(jié),。
LEN : 實際發(fā)送數(shù)據(jù)長度。
DONE :每次發(fā)送成功,,產(chǎn)生一個上升沿,。
ERROR :錯誤位。
STATUS:通訊狀態(tài)字,。
示例程序中S7-300 PLC發(fā)送DB1中前60個字節(jié),。
在通信方CPU OB1中調(diào)用接受函數(shù)FC6 AG_RECV(“Libraries”->“Standard Library”->“SIMATIC_NET_CP”->“CP300”,示例程序如下:
CALL "AG_RECV"
ID :=1
LADDR :=W#16#100
RECV :=P#DB2.DBX 0.0 BYTE 60
NDR :=M10.1
ERROR :=M10.2
STATUS:=MW12
LEN :=MW14
通信函數(shù)FC6的參數(shù)含義:
ID :參考本地CPU連接表中的塊參數(shù),。
LADDR :參考本地CPU連接表中的塊參數(shù),。
RECV : 接收區(qū)。接收區(qū)應(yīng)等于發(fā)送區(qū),。
NDR : 每次接收到新數(shù)據(jù),,產(chǎn)生一個上升沿。
ERROR :錯誤位,。
STATUS:通訊狀態(tài)字,。
LEN : 實際接收數(shù)據(jù)長度。
示例程序中S7-300 PLC將接收的數(shù)據(jù)存儲于本地數(shù)據(jù)區(qū)DB2的前60個字節(jié)中,。
4.2.4在SIMOTION側(cè)編寫通信程序
在PLC側(cè)調(diào)用發(fā)送和接收功能塊,,在SIMOTION側(cè)相應(yīng)調(diào)用發(fā)送和接收函數(shù)與之相匹配,通信函數(shù)存儲于在“Communication”->“Data transfer”目錄下,,發(fā)送函數(shù)調(diào)用的示例程序參考圖17,,發(fā)送函數(shù)與PLC的接收功能塊相匹配。

圖17 調(diào)用發(fā)送函數(shù)
發(fā)送函數(shù)參數(shù)解釋如下:
ConnectionId
參考_TcpOpenClient函數(shù)建立的連接,。
NextCommand
枚舉數(shù)據(jù)類型,,元素中包括“IMMEDIATELY ”、“WHEN_COMMAND_DONE。
“IMMEDIATELY”:接收命令與后續(xù)所要執(zhí)行的命令同步執(zhí)行,。
“WHEN_COMMAND_DONE”:接收命令執(zhí)行或失敗后執(zhí)行后續(xù)的命令,,異步執(zhí)行。
DataLength
發(fā)送數(shù)據(jù)的字節(jié)長度,,數(shù)據(jù)類型為UDINT,,例子中為60,發(fā)送數(shù)據(jù)區(qū)Data中前60個字節(jié),。
Data
發(fā)送數(shù)據(jù)區(qū),,數(shù)據(jù)類型為數(shù)組,ARRAY [0..4095] OF BYTE,。
OUT
輸出通信狀態(tài),,數(shù)據(jù)類型為DINT。
接收函數(shù)調(diào)用的示例程序參考圖18,,接收函數(shù)與PLC的發(fā)送功能塊相匹配,。

圖18 調(diào)用接收函數(shù)
接收函數(shù)參數(shù)解釋如下:
ConnectionId
參考_TcpOpenClient函數(shù)建立的連接。
NextCommand
枚舉數(shù)據(jù)類型,,元素中包括“IMMEDIATELY ”,、“WHEN_COMMAND_DONE。
“IMMEDIATELY”:接收命令與后續(xù)所要執(zhí)行的命令同步執(zhí)行,。
“WHEN_COMMAND_DONE”:接收命令執(zhí)行或失敗后執(zhí)行后續(xù)的命令,,異步執(zhí)行。
ReceiveVariable
數(shù)據(jù)接收區(qū),,數(shù)據(jù)類型為數(shù)組,,ARRAY [0..4095] OF BYTE,最大4096字節(jié),。
OUT
調(diào)用函數(shù)返回信息,,包括調(diào)用狀態(tài)和接收的字節(jié)數(shù)量。數(shù)據(jù)類型為結(jié)構(gòu)體(StructRetTcpReceive),,返回信息參考表3:
表3: 接收函數(shù)返回信息
結(jié)構(gòu) | 名稱 | 數(shù)據(jù)類型 |
functionResult | 接收狀態(tài)信息 | DINT |
dataLength | 接收字節(jié)長度 | UDINT |
注意:
PLC的接收區(qū)和發(fā)送區(qū)必須與SIMOTION的接收區(qū)和發(fā)送區(qū)相同,。
UDP示例程序參考附帶文件“SIMOTION_UDP”.ZIP
TCP示例程序參考附帶文件“SIMOTION_TCP”.ZIP