亳州市西門子PLC模塊授權代理商 亳州市西門子PLC模塊授權代理商
1.SIMOTION工業以太網網絡介質
西門子工業以太網網絡通常使用的物理傳輸介質為屏蔽雙絞線(FC TP)、工業屏蔽雙絞線(ITP)和光纖。
1.1 屏蔽雙絞線(Fast Connection Twist Pair)
FC TP快速連接雙絞線用于將DTE快速連接到工業以太網上,配合西門子FC TP RJ45接頭使用,連接方式如圖1所示:

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

圖2 交叉線連接

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

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

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

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

圖9 設定通信接口
注意:
即使建立兩條以太網,兩個以太網通信接口不能設置在相同的網段中或相同的IP地址。
3.2 在線聯機設定以太網接口
將編程器連接到SIMOTION 以太網接口上,在控制面板“Setting the PG/PC Interface”接口中將訪問點指向使用的編程網卡例如“S7ONLINE(STEP7)->TCP/IP -> Intel(R) PRO/1000 MT ”。打開SIMATIC Manager,使用菜單命令“PLC”->“Edit Ethernet Nodes”在界面中選擇“Browse”鍵瀏覽網絡上所有的站點,如圖10所示:
西門子電纜代理商
圖10 瀏覽網絡上的站點
每一個接口在硬件的前面板標有網卡的MAC地址,選擇站點,在“Edit Ethernet Nodes”界面中設置IP地址和子網掩碼,點擊“Assign IP Configuration”鍵傳送設定的命令。如圖11所示:

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

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

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

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

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

圖16 SIMOTION側建立TCP連接(戶端)
函數參數解釋如下:
Port
SIMOTION 端口號,數據類型UINT,在NETPRO中定義為2001。
ServerAddress
PLC的IP地址,數據類型為數組,ARRAY [0..3] OF USINT,在4個字節中輸IP地址,例如192、168、1、112,表示IP地址為192.168.1.112。
ServerPort
PLC的端口號,數據類型UINT,例子程序中在NETPRO定義為2000。
NextCommand
枚舉數據類型,元素中包括“IMMEDIATELY ”、“WHEN_COMMAND_DONE。
“IMMEDIATELY”:接收命令與后續所要執行的命令同步執行。
“WHEN_COMMAND_DONE”:接收命令執行或失敗后執行后續的命令,異步執行。
OUT
調用函數返回信息,包括調用狀態和連接號。數據類型為結構體(StructRetTcpOpenClient),返回信息參考表2:
表2:TCP 客戶端連接函數返回信息
結構
|
名稱
|
數據類型
|
functionResult
|
狀態信息,可以查看通信連接是否建立
|
DINT
|
connectionId
|
連接號,用于發送和接收函數的參數賦值
|
DINT
|
連接函數調用一次,得到連接號后停止調用。
注意:此函數調用需用上升沿信號進行使能。
4.2.3在PLC側編寫通信程序
通信連接建立后,在通信雙方需要編寫通信函數或通信功能塊。在S7-300 PLC側OB35中(間隔發送)調用發送功能塊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
通信函數FC5的參數含義:
ACT :為1觸發。
ID :參考本地CPU連接表中的塊參數。
LADDR :參考本地CPU連接表中的塊參數。
SEND : 發送區。大通信數據為8192字節。與SIMOTION之間大4096個字節。
LEN : 實際發送數據長度。
DONE :每次發送成功,產生一個上升沿。
ERROR :錯誤位。
STATUS:通訊狀態字。
示例程序中S7-300 PLC發送DB1中前60個字節。
在通信方CPU OB1中調用接受函數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
通信函數FC6的參數含義:
ID :參考本地CPU連接表中的塊參數。
LADDR :參考本地CPU連接表中的塊參數。
RECV : 接收區。接收區應等于發送區。
NDR : 每次接收到新數據,產生一個上升沿。
ERROR :錯誤位。
STATUS:通訊狀態字。
LEN : 實際接收數據長度。
示例程序中S7-300 PLC將接收的數據存儲于本地數據區DB2的前60個字節中。
4.2.4在SIMOTION側編寫通信程序
在PLC側調用發送和接收功能塊,在SIMOTION側相應調用發送和接收函數與之相匹配,通信函數存儲于在“Communication”->“Data transfer”目錄下,發送函數調用的示例程序參考圖17,發送函數與PLC的接收功能塊相匹配。

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

圖18 調用接收函數
接收函數參數解釋如下:
ConnectionId
參考_TcpOpenClient函數建立的連接。
NextCommand
枚舉數據類型,元素中包括“IMMEDIATELY ”、“WHEN_COMMAND_DONE。
“IMMEDIATELY”:接收命令與后續所要執行的命令同步執行。
“WHEN_COMMAND_DONE”:接收命令執行或失敗后執行后續的命令,異步執行。
ReceiveVariable
數據接收區,數據類型為數組,ARRAY [0..4095] OF BYTE,大4096字節。
OUT
調用函數返回信息,包括調用狀態和接收的字節數量。數據類型為結構體(StructRetTcpReceive),返回信息參考表3:
表3: 接收函數返回信息
結構
|
名稱
|
數據類型
|
functionResult
|
接收狀態信息
|
DINT
|
dataLength
|
接收字節長度
|
UDINT
|
注意:
PLC的接收區和發送區必須與SIMOTION的接收區和發送區相同。
UDP示例程序參考附帶文件“SIMOTION_UDP”.ZIP
TCP示例程序參考附帶文件“SIMOTION_TCP”.ZIP
上面介紹了SIMOTION與PLC CP343-1的通信,PLC作為數據的服務器,同樣SIMOTION也可以作為數據的服務器,只是建立連接的初始化過程不同。SIMOTION與 SIMOTION、SIMOTION與CPU PN接口、SIMOTION與PC機通過VB SOCKET控件之間的通信可以參照上面的例子。