大連西門子PLC代理商
聯系潯之漫智控聶工(W-X同號):1 5 2 2 1 4 0 6 0 3 6 1 5 2 2 1 4 0 6 0 3 6
WinCC和自動化系統(AS)之間的通訊
在工業通訊環境中,WinCC以變量和過程值的形式進行交換信息的通訊。為了采集過程值,WinCC通訊驅動程序發送任務消息給AS,然后AS把相應的包含有所請求的過程值的回復消息發送給WinCC。
首先,在WinCC和AS之間要有一個物理連接。連接的屬性,比如傳送媒體和通訊網絡,限定通訊條件并且在WinCC中組態通訊時必須已知。
通訊驅動程序
通訊驅動程序是一個軟件組件,它在AS和WinCC中的變量管理之間設置連接以便能向WinCC變量提供過程值。在WinCC中有很多通訊驅動程序,可通過不同總線系統用于連接不同自動化系統。每個通訊驅動程序只能被集成到WinCC項目一次。
WinCC中,通訊驅動程序也指“通道”并具有文件擴展名“*.chn”。安裝在系統中所有的通訊驅動程序可在WinCC安裝目錄下的子目錄“bin”中查找到。通訊驅動程序有不同通道單元用于各種通訊網絡。
通道單元
每個通道單元只對一個下位硬件驅動程序用作端口,同樣作為到PC上一個通訊處理器的端口。因此,每個使用的通道單元必須分配給相關的通訊處理器。一些通道單元需要附加的系統參數的組態。而且,對于在OSI模型的傳輸層(層面4)上工作的通道單元,用戶也必須設置傳輸參數。
連接(邏輯)
一旦WinCC和AS正確物理連接,就需要WinCC的通訊驅動程序和相關的通道單元來建立或組態與AS的(邏輯)連接。該(邏輯)連接用于運行系統中數據的交換。
WinCC的連接是一個用于執行特定通訊任務的兩個通訊伙伴之間已組態邏輯分配。每個連接有兩個端點,包含用于對相應的通訊伙伴尋址的必要信息,以及建立連接所需的其他屬性。在具有連接參數的通道單元下,組態每個連接。根據通訊驅動程序,在單個通道單元下有可能有多個連接。
外部變量
需要WinCC變量來訪問AS中的數據。這些需要和AS連接的變量,是指外部變量。沒有過程連接的變量,稱為內部變量。
數據類型和類型轉換
當組態外部變量,除變量名稱外,必須數據類型和類型轉換(用于某些數據類型):
數據類型與WinCC中數據格式*。類型轉換決定從AS格式到WinCC格式的轉換。類型轉換適用于兩個傳送方向:
在AS中:例如用于某一功能(如定時器數值/BCD顯示)或通過要尋址的信息(如字節地址、在數據塊或I/O范圍中的字地址)
在WinCC中:例如用于處理或計算模擬數值。
一般而言,AS數據格式是固定的。下列選項用于選擇WinCC格式:
WinCC數據格式可以與AS數據格式匹配。為此,選擇類型轉換,該轉換在兩端使用同樣的格式并考慮WinCC數據類型的符號,如“WordToSignedWord”。如果用所選擇的數據類型不能實現目的,那么在WinCC中改變它。
WinCC格式遵循WinCC中的數值處理。
用戶在選擇數據類型時必須遵守下列幾點并且若有必要則進行類型轉換:
符號:是否在轉換中考慮到?在操作期間能否出現負變量值?(例如,當規則中的區別以百分數顯示)
數值范圍:操作中產生的變量值是否都在每種格式可用的數值范圍內,或者在WinCC中或在自動化系統上數值是否有可能溢出范圍?如果出現溢出,數值可能不會在終端顯示或者可能導致在以后的處理中出錯。
具有相同數值范圍的不同類型轉換:數據類型的幾種轉換也許會有相同的數值范圍,例如“ByteToUnsignedDword”和“ByteToUnsignedWord”的數值范圍都是[0...127]。如果是上述情況,用戶應該始終確定AS上的數據格式并檢查該格式是否會超過尺寸,從而造成資源的浪費。(例如雙字代替字)。
如果AS所需的數值范圍沒有被所選的類型轉換覆蓋,在WinCC中改變數據類型。
WinCC數據類型和類型轉換
下表顯示哪種WinCC數據類型支持類型轉換。
數據類型 類型轉換
二進制變量 否
無符號8位數 是
有符號8位數 是
無符號16位數 是
有符號16位數 是
無符號32位數 是
有符號32位數 是
浮點數32位IEEE 754 是
浮點數64位IEEE 754 是
文本變量8位字符集 否
文本變量16位字符集 否
原始數據類型 否
注意:
在使用類型轉換時,確保來自AS的數據在所選擇的類型轉換中能被WinCC識別。如果WinCC不能識別該數據,出錯信息將會記錄在目錄“..SiemensWinCCDiagnose”下的文件“WinCC_sys_0x.log”中。
數字變量類型的線性標定
線性標定可與數字數據類型一起使用。在WinCC變量的數值范圍可線性顯示過程中數值的范圍。
例如,一個過程能要求標稱數值以單位[巴]輸入,而WinCC應允許用戶以單位[毫巴]輸入該數值。使用線性標定,過程中的數值范圍[0 ...1]可轉換成WinCC變量的數值范圍[0 ...1000]。
設置文本變量長度
必須使用數據類型“文本變量8位字符集”或“文本變量16位字符集”設置變量的長度。文本變量,稍后將占用10個字符,所以在“8位字符集”的情況下必須給它分配10位的長度,或在“16位字符集”的情況下分配20位的長度。
自動化系統中編址
將WinCC變量分配到AS中的數據區。這些變量必須在AS中以特殊的方式編址。編址類型取決于通訊伙伴的類型。
如何創建新連接
引言
外部變量只能在與自動化系統連接的基礎上創建。如果還沒有需要的連接,必須首先創建該連接。
先決條件
必須安裝所需要的通訊處理器和相關的硬件驅動程序。
還必須安裝期望的通訊驅動程序,例如“SIMATIC S7 Protocol Suite”
步驟
1。 擴展“變量管理”中通訊驅動程序的視圖。
2。 選擇期望的通道單元,例如“PROFIBUS”。
3。在用于通道單元的彈出式菜單中,選擇“新建驅動程序連接...”。
4。 在“常規”標簽卡的“名稱”域中,輸入在項目范圍內的用于連接的名稱。
5。 單擊“屬性”按鈕,打開“連接參數”對話框。設置該連接所需的參數。有關詳細信息,請參考各相應通道的幫助文檔。
6。 通過單擊“確定”,關閉所有的對話框。
如何組態外部變量
引言
。創建變量的過程對于所有數據類型基本相似。
。然而,對某些數據類型進行特殊設置。(步驟5 - 7)。
先決條件
。必須安裝所需要的通訊處理器和硬件驅動程序。
。還必須安裝期望的通訊驅動程序,例如“SIMATIC S7 Protocol Suite”。
。為了使用通道單元,必須建立連接(例如“PROFIBUS”)。
步驟
1。 從所期望的連接的彈出式菜單中選擇“新建變量”?!白兞繉傩浴睂υ捒驅⒋蜷_。
2。 在“常規”標簽卡上,“名稱”域中,輸入在WinCC項目范圍內的變量名,例如“WinCCTag_01”。
3。 設置變量的“數據類型”,例如 “浮點數64位IEEE 754”,在相關域中。
4。 單擊“選擇”打開“變量屬性”對話框,在AS中設置變量的地址區域。
在二進制或8位變量的情況下,如果通道不支持按位/字節訪問,在“變量屬性”對話框前會顯示“位/字節變量”對話框。
要獲得更多信息,請參考“BinWrite機制”。
單擊“確定”按鈕,關閉“位/字節變量”或“變量屬性”對話框。
5。 在數字變量的情況下,WinCC會在“類型轉換”域中顯示建議的類型轉換。
按照不同需要,選擇合適的的類型轉換。轉換以“X到Y”的次序顯示,X是WinCC格式、Y是AS格式,例如“DoubleToDouble”。
6。 單擊“線性標定”復選框使數字標簽線性標定。輸入“過程值范圍”(在AS中)以及“變量數值范圍”(在WinCC中)的上限和限。
7。 當使用文本變量工作,將激活“長度”域。在這種情況下,以字符形式輸入文本變量的長度。
8。 單擊“確定”關閉所有對話框
配置S7-400單站系統通過CP443-1 作為Server進行Modbus TCP通訊
以S7-400單站系統及Modscan32軟件為例,詳細介紹如何將S7-400單站系統通過CP443-1配置為Server,Modscan32為Client進行Modbus TCP通訊,在本例中將使用帶FC10”AG_CNTRL”版本的功能塊,下圖5為服務器功能塊庫的程序結構及各功能塊完成的功能:
圖5 服務器功能塊庫程序結構
注意:Modscan32軟件可以從網上免費下載得到,本例中使用的版本為V7.0版,由于各版本的功能不盡相同,因此需要注意版本問題。
2.1 例子中使用的硬件設備及軟件
本例中所用的硬件設備如下表:
名稱 |
數量 |
訂貨號 |
S7-400電源模塊PS 407 10A |
1 |
6ES7407-0KA01-0AA0 |
S7-400 CPU414-3PN/DP |
1 |
6ES7414-3EM05-0AB0(V5.2) |
S7-400 CP443-1 |
1 |
6GK7443-1EX41-0xE0(V1.0) |
S7-400 機架 |
1 |
6ES7400-1JA00-0AA0 |
網線 |
若干 |
|
筆記本電腦 |
1 |
|
表1 服務器硬件清單
所用到軟件如下表:
名稱 |
訂貨號 |
STEP7 V5.5 組態編程軟件 英文版 |
|
“ ModbusTCP CP V4.3” 軟件選項包 |
2XV9450-1MB00 |
Modscan32 V7.0 |
|
表2 服務器軟件清單
2.2 S7-400系統及Modscan32軟件組態
打開Step7軟件,新建一個工程項目文件,命名為“M_TCP_CP_V43(Server)”, 在項目下插入一個S7-400站,如下圖6所示:
圖6 新建S7-400 Station
雙擊插入的SIMATIC 400 Station的“Hardware”,打開硬件組態,在硬件組態界面下分別插入機架,電源PS407、CPU414-3PN/DP、CP443-1,本例中將CP的IP地址設為192.168.70.2,如下圖7所示:
圖7 硬件組態并設置CP443-1的IP地址
打開Netpro網絡組態,選中CPU414-3PN/DP,插入一個新連接,連接伙伴為Unspecified,連接類型為TCP Connection,如下圖8所示:
圖8 網絡組態-新建TCP connection
打開連接屬性對話框中的“General Information”,由于CP443-1做Server被動連接,因此不勾選“Active connection estabishment”選項,ID保持缺省即可,在“Address”欄中同樣由于CP443-1做Server,因此填入連接的Port號設置為502,組態完成后,編譯保存,將例程站點“SIMATIC 400(Server)”中的程序(System data不需要拷貝)拷貝到該項目中并下載(注意:OB100中調用的FB108的id和laddr需根據組態確認)。對于通訊伙伴Remote的IP地址可以不填,即允許任意IP地址的客戶端發起連接,如下圖9所示:
圖9 S7-400為服務器的TCP connection參數設置
對于服務器和客戶端的端口號(下述中以Port代替)的選擇需要注意以下幾點:
1)一般情況下服務器端的Port號modbus TCP規范缺省為502,客戶端的Port號設置為客戶端允許的號即可,另外各廠商產品也有一些限制,對于SIMATIC產品一般從2000之后開始。
2)對于一個系統來說,當創建多個TCP連接時,要保證IP地址和Port號不重合,即同一個IP地址下創建多個TCP連接時Port號必須不同,而不同的系統因IP地址不同可以使用相同的Port號,例如本例中如果需要創建多個TCP連接作為Server時因只有一個IP,因此Port號必須不同