C#直接與S7-200Smart、S7-300/400、S7-1200/1500以太網、PPI、MPI通訊

C#直接與S7-200Smart、S7-300/400、S7-1200/1500以太網、PPI、MPI通訊

1.0 通訊組件概述

該類通訊組件適用於基於PC高級語言的工業自動化控制系統,用於PC與可編程控制器(PLC)、智能儀表等進行數據通訊。組件採用動態鏈接庫文件(*.DLL)的形式,在PC系統的項目工程裏引用該組件,調用相應的屬性與方法函數,即可快速實現PC與PLC的數據高效交換。

DLL通訊組件無須安裝,直接複製到工程文件目錄,方便打包安裝部署;無須任何配置,直接調用函數,與應用開發無縫銜接;多年工程經驗的軟件團隊開發測試,經過本公司及客戶的海量實際應用檢驗,穩定可靠;採用穩定高效的內部協議,無須編寫PLC內部程序配合,直接訪問PLC的內存,通訊響應快速;內建動態管理的多獨立線程連接,同時支持外部應用的多線程結構調用;兼容WINDOWS系統下的所有開發環境,包括各種版本的VB.NET、C#、VC ,以及DEIPHI 、VB、LabView等;支持幾乎所有PLC的CPU自帶通訊口、通訊擴展模塊。

2.0 通訊組件名稱

2.1 以太網(S7協議)

S7-300/S7-400: WinTcpS7.DLL 下載

S7-1200/S7-1500: WinTcpS7_1K.DLL 下載

S7-200 Smart: WinTcpS7_Smart.DLL 下載

S7-200 CP243: WinTcpS7_CP2.DLL 下載

2.2 串口(PPI、MPI協議)

S7-300/S7-400: WinS7_MPI.DLL

S7-200/S7-200 Smart: WinS7_PPI.DLL

2.3 DTU模塊(網路透傳PPI、MPI協議)

S7-300/S7-400: TransS7_MPI.DLL

S7-200/S7-200 Smart: TransS7_PPI.DLL

3.0 數據類型

通訊組件能對PLC的輸入、輸出端口,以及內部中間繼電器存儲區域、內部數據存儲區域,以及擴展存儲區域進行讀寫操作,支持以下數據類型:

INT16: 16位有符號整數;

UINT16: 16位無符號整數;

DINT32: 32位有符號整數;

HEX32: 32位16進制字符;

REAL32: 32位單精度浮點數據;

BIN16: 16位二進制字符串;

4.0 函數與參數

4.1 函數參數

[DataConvert] 數據類型轉換函數;

參數:SourType,DataType, 數據類型枚舉,見5.2詳細說明

SourData , Object,需要轉換的源數據

DestType , DataType, 數據類型枚舉,見5.2詳細說明

DestData ,Object,轉換後的目標數據(傳地址參數)

返回值: Int16,函數執行結果,見5.3詳細說明。

[EntLink] 設置PC、PLC的通訊參數,建立與PLC的以太網聯接;

參數:pcIP,String,PC端的IP地址

pcPort , Uint16, PC端的網絡端口

plcIP , String ,PLC的IP地址

plcPort ,Uint16, PLC的通訊端口

Rack ,Uint16, PLC的機架號碼(除西門子外,其它品牌爲0)

Slot ,Uint16, PLC的CPU的插槽號碼(除西門子外,其它品牌爲0)

Handle, Integer ,返回網絡句柄,多PLC網絡時通過該句柄操作不同的PLC

SN , String,調用系列號碼,與DLL成對使用,可聯繫本公司獲取

返回值: Int16,函數執行結果,見5.3詳細說明。

[ComLink] 設置PC、PLC的通訊參數,建立與PLC的串口聯接;

參數:CommPort,Uint16,聯接PLC的PC通訊端口

CommRate,Int32,與PLC通訊的速率

DataBit, Uint16, 通訊數據位數

StopBit,Uint16, 數據的停止位數

Parity,PrtType, 數據校驗方式

Station, Uint16, PLC的站號碼

OverTime,Uint16, 通訊超時時間限制,毫秒單位

SN , String,調用系列號碼,通過聯繫本公司獲取

返回值: Int16,函數執行結果,見5.3詳細說明。

[DeLink] 斷開與PLC的連接;

參數:Handle, Integer , 網絡句柄,多PLC網絡時通過該句柄操作對應的PLC

返回值: Int16,函數執行結果,見5.3詳細說明

[CmdRead] 讀取多個PLC內存數據;

參數:Handle, Integer , 網絡句柄,多PLC網絡時通過該句柄操作對應的PLC

Memory , PlcMemory, PLC數據區域枚舉,見5.2詳細說明

ValType, DataType, 數據類型枚舉,見5.2詳細說明

Block ,Uint16, DB塊的號碼,非DB數據爲0

Address ,Uint16, 要操作的字的起始地址

Count ,Uint16, 要操作的字的個數

ReData() , Object,讀取到的數據(傳址參數)

返回值: Int16,函數執行結果,見5.3詳細說明

[CmdWrite] 批量寫入數據到PLC內存;

參數:Handle, Integer , 網絡句柄,多PLC網絡時通過該句柄操作對應的PLC

Memory , PlcMemory, PLC數據區域枚舉,見5.2詳細說明

ValType, DataType, 數據類型枚舉,見5.2詳細說明

Block ,Uint16, DB塊的號碼,非DB數據爲0

Address ,Uint16, 要操作的字的起始地址

Count ,Uint16, 要操作的字的個數

Data() , Object,要寫入PLC的數據(傳址參數)

返回值: Int16,函數執行結果,見5.3詳細說明

[Bit_Test] 以Bit(位)的方式讀取其狀態;

參數:Handle, Integer , 網絡句柄,多PLC網絡時通過該句柄操作對應的PLC

Memory , PlcMemory, PLC數據區域枚舉,見5.2詳細說明

Block ,Uint16, DB塊的號碼,非DB數據爲0

Address ,Uint16, 要操作的位所在的字地址

Bit,Uint16, 要操作的位在字地址內的位號碼

State , Boolean,讀取到的位的狀態(傳址參數)

返回值: Int16,函數執行結果,見5.3詳細說明

[Bit_Set] 以Bit(位)的方式設置其狀態爲ON;

參數:Handle, Integer ,網絡句柄,多PLC網絡時通過該句柄操作對應的PLC

Memory , PlcMemory, PLC數據區域枚舉,見5.2詳細說明

Block ,Uint16, DB塊的號碼,非DB數據爲0

Address ,Uint16, 要操作的位所在的字地址

Bit,Uint16, 要操作的位在字地址內的位號碼

返回值: Int16,函數執行結果,見5.3詳細說明

[Bit_Reset] 以Bit(位)的方式復位其狀態爲OFF;

參數:Handle, Integer ,連接句柄,多PLC網絡時通過該句柄操作對應的PLC

Memory , PlcMemory, PLC數據區域枚舉,見5.2詳細說明

Block ,Uint16, DB塊的號碼,非DB數據爲0

Address ,Uint16, 要操作的位在字地址內的位號碼

Bit,Uint16, 要操作的位號碼

返回值: Int16,函數執行結果,見5.3詳細說明

4.2 枚舉結構體參數說明:

--PlcMemory 要操作的PLC的內存區域類型:

DI: 輸入端口;

DQ: 輸出端口;

MR: 內部中間繼電器M區域;

DR: VR、DB塊數據區域

--PrtType 串口通訊的校驗方式

None:無校驗

Odd:奇校驗

Even:偶檢驗

Mark:特殊校驗

4.3 返回值說明:

0 執行成功;

-1 IP地址或端口參數錯誤;

-2 網絡連接錯誤;

-3 連接參數錯誤(機架:<7 ,插槽:<15);

-4 PLC握手連接異常;

-5 PLC握手無響應;

-6 PLC握手響應錯誤;

-10 讀數據超過最大數據量限制;

-11 讀數據時數據發送異常;

-12 讀數據時PLC響應超時;

-13 讀數據PLC返回格式錯誤;

-14 讀數據PLC返回數據錯誤;

-20 寫數據超過最大數據量限制;

-21 寫數據時數據發送異常;

-22 寫數據PLC響應超時;

-23 寫數據PLC返回格式錯誤;

-24 寫數據PLC返回數據錯誤;

-31 數據轉換時源數據處理錯誤;

-32 數據轉換時目標數據處理錯誤;

-70 PLC內存區域的功能受限制;

-80 PC系統中無網卡;

-81 PC的IP地址格式錯誤;

-82 PLC的IP地址格式錯誤;

-83 PING命令返回錯誤;

-99 連接序列號錯誤或測試次數超過試用限制;

5.0 組件使用步驟

5.1 基本步驟

a. 複製組件文件到需要用到該組件的工程項目目錄下;

b.註冊組件及其相關資源(DotNet框架的組件無須此步驟);

c. 在項目編程軟件裏面引用該組件,不同的編程語言引用方式有區別,具體參見所用語言的MSDN幫助文檔;

d. 參照例程定義、實例化通訊組件,編寫相關通訊代碼;

5.2 組件註冊方法

VS6.0平臺開發的組件須要在系統註冊才能正常使用,註冊的方法主要有兩種:

a. 代碼註冊:用Windows提供的Shell命令,Shell “regsvr32 \s ” 組件的完整路徑及文件名稱;

b. 手動註冊:同時按下 “Win”鍵 “R”建,在彈出的運行對話框中輸入 “Regsvr32 ” 空格 組件的完整路徑及文件名稱,然後點“確認”按鈕Windows 7 及以上的系統下注冊,建議對用戶賬戶作以下設置:控制面板->用戶賬號和家庭安全->用戶賬戶->更改用戶賬戶控制設置,把滑竿拖到最下面,即“從不通知”。

Windows 7 64位註冊方法:

a. 在C:\Windows\SysWOW64\下新建目錄(如:regdll),複製需要註冊的dll到這個目錄下(以abc.dll爲例);

b. 點擊開始,在“搜索程序和文件”裏鍵入cmd,然後在搜索出來的cmd菜單上右鍵,以管理員的權限運行;

c. 此時cmd提示符爲c:\Windows\System32,鍵入cd \windows\syswow64,改變提示符爲c:\windows\syswow64;

d. 在cmd裏鍵入regsvr32 abc.dll,回車,然後提示註冊成功(注意此時使用的是syswow64目錄下的regsvr32.exe,而不是system32下的regsvr32.exe)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章