-
您的位置:
- 網(wǎng)站首頁
- > 新聞動態(tài)
- > 行業(yè)資訊
您的位置:
以實驗室內部為集成范圍,信息集成的工作主要集中在LIMS與各種分析儀器之間的集成,也就是LIMS的集成。從LIMS的定義來看,儀器數(shù)據(jù)的自動采集,即儀器連接,是LIMS系統(tǒng)中十分重要的模塊,也是用戶衡量LIMS實施成功與否的一個重要指標。
將儀器連接到LIMS的好處是顯而易見的。讓儀器進入LIMS的集成后,由分析儀器到LIMS的自動數(shù)據(jù)傳輸將代替測試和質量控制結果數(shù)據(jù)的鍵盤輸入,從而避免了手工模式下的撰抄錯誤。數(shù)據(jù)自動傳輸通常是通過LIMS對數(shù)據(jù)文件的讀取來完成的,數(shù)據(jù)文件通常存放在LIMS所跟蹤掃描的某個目錄,它是以特定的格式來組織和傳輸?shù)?,以確保數(shù)據(jù)能夠準確無誤地轉移到LIMS系統(tǒng)合適的數(shù)據(jù)表中。
儀器接口的類型
實驗室中儀器與LIMS的接口種類繁多,但是從接口的模式來看,大致可分為以下幾種:LIMS與儀器工作站的雙向傳輸;LIMS與儀器工作站的單向傳輸;LIMS與無工作站儀器的單向傳輸。
基于儀器文件的儀器集成與LIMS的集成的實現(xiàn)
對于可與LIMS連接實現(xiàn)LIMS與儀器工作站的雙向傳輸和單向傳輸?shù)膬x器,LIMS是從存儲在本地硬盤或者網(wǎng)絡硬盤上的儀器產生的數(shù)據(jù)文件中提取數(shù)據(jù),并把提取到的有用數(shù)據(jù)映射到LIMS中。該儀器可以沒有連接到工作站但是它必需把它的數(shù)據(jù)輸送到一個LIMS可以訪問的地方。
在日常電子電器實驗室中很多設備采用了西門子或其他工控設備控制系統(tǒng),那么下面我們以西門子工控為例講講集成方案
1.0 通訊組件概述
通訊組件用于PC與可編程控制器(PLC)、智能儀表等進行數(shù)據(jù)通訊,適用于基于PC高級語言的工業(yè)自動化控制系統(tǒng)。組件采用動態(tài)鏈接庫文件(*.DLL)的形式,在PC系統(tǒng)的項目工程里引用該組件,調用相應的屬性與方法函數(shù),即可快速實現(xiàn)PC與PLC的高效數(shù)據(jù)交換。
DLL通訊組件無須安裝,直接復制到工程文件目錄,方便打包安裝部署;無須任何配置,直接調用函數(shù),與應用開發(fā)無縫銜接;多年工程經驗的軟件團隊開發(fā)測試,經過本公司及客戶的海量實際工程應用檢驗,穩(wěn)定可靠;采用穩(wěn)定高效的內部協(xié)議,無須編寫PLC內部程序配合,直接訪問PLC的內存,通訊響應快速;內建動態(tài)管理的多獨立線程連接,同時支持外部應用的多線程結構調用;兼容WINDOWS系統(tǒng)下的所有開發(fā)環(huán)境,包括各種版本的VB.NET、C#、VC++,以及DEIPHI 、VB、LabView等;支持幾乎所有PLC的CPU自帶通訊口、通訊擴展模塊。
2.0 通訊組件名稱
3.0 數(shù)據(jù)類型
通訊組件能對PLC的輸入、輸出端口,以及內部中間繼電器存儲區(qū)域、內部數(shù)據(jù)存儲區(qū)域,以及擴展存儲區(qū)域進行讀寫操作,支持以下數(shù)據(jù)類型:
0 BOOL1: 1位布爾型數(shù)據(jù);
1 INT16: 16位有符號整數(shù);
2 UINT16: 16位無符號整數(shù);
3 DINT32: 32位有符號整數(shù);
4 HEX32: 32位16進制字符;
5 REAL32: 32位單精度浮點數(shù)據(jù);
6 BIN16: 16位二進制字符串;
7 CHAR8: 8位單個字符(ASCII)
8 BYTE8: 8位單字節(jié)數(shù)據(jù);
9 STRING: 多個字符或數(shù)字組成的字符串(ASCII)
4.0 函數(shù)與參數(shù)
4.1 函數(shù)參數(shù)
[EntLink] 設置PC、PLC的通訊參數(shù),建立與PLC的以太網(wǎng)連接;
參數(shù): pcIP,String,本地地址,即PC端的IP地址
pcPort , Uint16, 本地端口,即PC端的網(wǎng)絡端口,默認為0
plcIP , String ,遠程地址,即PLC的IP地址
plcPort ,Uint16, 遠程端口,即PLC的通訊端口
Rack ,Uint16, PLC的機架號碼
Slot ,Uint16, PLC的CPU的插槽號碼
Handle, Integer ,DLL組件返回網(wǎng)絡中PLC的連接句柄 *1
SN , String,調用序列號碼,可聯(lián)系本公司獲
OverTime,Uint16, 通訊超時時間限制,毫秒單位,默認1000
返回值:Int16,函數(shù)執(zhí)行結果,見4.3詳細說明。
[ComLink] 設置PC、PLC的通訊參數(shù),建立與PLC的串口連接;
參數(shù): CommPort,Uint16,聯(lián)接PLC的PC通訊端口
CommRate,Int32,與PLC通訊的速率
DataBit, Uint16, 通訊數(shù)據(jù)位數(shù)
StopBit,Uint16, 數(shù)據(jù)的停止位數(shù)
Parity,PrtType, 數(shù)據(jù)校驗方式
Station, Uint16, PLC的站號碼
OverTime,Uint16, 通訊超時時間限制,毫秒單位
SN , String,調用序列號碼,通過聯(lián)系本公司獲取
返回值:Int16,函數(shù)執(zhí)行結果,見4.3詳細說明
[DeLink] 斷開與PLC的連接;
參數(shù): Handle, Integer , 通過EntLink函數(shù)獲取的網(wǎng)絡中PLC的句柄 *1
返回值:Int16,函數(shù)執(zhí)行結果,見4.3詳細說明
[CmdRead] 批量讀取PLC的數(shù)據(jù);
參數(shù): Handle, Integer , 通過EntLink函數(shù)獲取的網(wǎng)絡中PLC的句柄 *1
Memory ,PlcMemory, PLC數(shù)據(jù)區(qū)域枚舉,見4.2詳細說明
ValType, DataType, 數(shù)據(jù)類型枚舉,見4.2詳細說明
Block ,Uint16, DB塊的號碼,非DB數(shù)據(jù)為0
Address ,Uint16, 要讀取的存儲區(qū)域起始地址
Count ,Uint16, 要讀取的數(shù)量,以ValType對應的數(shù)據(jù)類型為單位
ReData() ,Object/String,讀取到的數(shù)據(jù)(傳地址方式的形式參數(shù))
返回值:Int16,函數(shù)執(zhí)行結果,見4.3詳細說明
[CmdWrite] 批量寫入數(shù)據(jù)到PLC;
參數(shù): Handle, Integer , 通過EntLink函數(shù)獲取的網(wǎng)絡中PLC的句柄 *1
Memory ,PlcMemory, PLC數(shù)據(jù)區(qū)域枚舉,見4.2詳細說明
ValType, DataType, 數(shù)據(jù)類型枚舉,見4.2詳細說明
Block ,Uint16, DB塊的號碼,非DB數(shù)據(jù)為0
Address ,Uint16, 要寫入的存儲區(qū)域起始地址
Count ,Uint16, 要寫入的數(shù)量,以ValType對應的數(shù)據(jù)類型為單位
Data() ,Object/String,要寫入PLC的數(shù)據(jù)(傳地址方式的形式參數(shù))
返回值:Int16,函數(shù)執(zhí)行結果,見4.3詳細說明
[Bit_Test] 以Bit(位)的方式讀取一個位的狀態(tài);
參數(shù): Handle, Integer , 通過EntLink函數(shù)獲取的網(wǎng)絡中PLC的句柄 *1
Memory ,PlcMemory, PLC數(shù)據(jù)區(qū)域枚舉,見4.2詳細說明
Block ,Uint16, DB塊的號碼,非DB數(shù)據(jù)為0
Address ,Uint16, 要讀取的位所在的字或字節(jié)地址
Bit,Uint16, 要讀取的位在Address中的位號碼
State ,Boolean,讀取到的位的狀態(tài)(傳地址方式的形式參數(shù))
返回值:Int16,函數(shù)執(zhí)行結果,見4.3詳細說明
[Bit_Set] 以Bit(位)的方式設置其狀態(tài)為ON;
參數(shù): Handle, Integer , 通過EntLink函數(shù)獲取的網(wǎng)絡中PLC的句柄 *1
Memory ,PlcMemory, PLC數(shù)據(jù)區(qū)域枚舉,見4.2詳細說明
Block ,Uint16, DB塊的號碼,非DB數(shù)據(jù)為0
Address ,Uint16, 要設置的位所在的字或字節(jié)地址
Bit,Uint16, 要設置的位在Address中的位號碼
返回值:Int16,函數(shù)執(zhí)行結果,見4.3詳細說明
[Bit_Reset] 以Bit(位)的方式復位其狀態(tài)為OFF;
參數(shù): Handle, Integer , 通過EntLink函數(shù)獲取的網(wǎng)絡中PLC的句柄 *1
Memory ,PlcMemory, PLC數(shù)據(jù)區(qū)域枚舉,見4.2詳細說明
Block ,Uint16, DB塊的號碼,非DB數(shù)據(jù)為0
Address ,Uint16, 要復位的位所在的字或字節(jié)地址
Bit,Uint16, 要復位的位在Address中的位號碼
返回值:Int16,函數(shù)執(zhí)行結果,見4.3詳細說明
[CmdReadString] 讀取PLC中的字符串;
參數(shù): Handle, Integer , 通過EntLink函數(shù)獲取的網(wǎng)絡中PLC的句柄 *1
Memory ,PlcMemory, PLC數(shù)據(jù)區(qū)域枚舉,見4.2詳細說明
Block ,Uint16, DB塊的號碼,非DB數(shù)據(jù)為0
Address ,Uint16, 要讀取的存儲區(qū)域起始地址
PlcDataSize ,Uint16, PLC內定義的存放字符的最大字符數(shù)
返回值:String,正常時為讀到的字符串,異常時為空
[CmdWriteString] 寫入字符串到PLC;
參數(shù): Handle, Integer , 通過EntLink函數(shù)獲取的網(wǎng)絡中PLC的句柄 *1
Memory ,PlcMemory, PLC數(shù)據(jù)區(qū)域枚舉,見4.2詳細說明
Block ,Uint16, DB塊的號碼,非DB數(shù)據(jù)為0
Address ,Uint16, 要寫入的存儲區(qū)域起始地址
PlcDataSize ,Uint16, PLC內定義的存放字符的最大字符數(shù)
Data ,String, 要寫入到PLC的符數(shù),長度應≤PlcDataSize
返回值:String,正常時為讀到的字符串,異常時為空
[DataConvert] 數(shù)據(jù)類型轉換函數(shù);
參數(shù): SourType,DataType, 數(shù)據(jù)類型枚舉,見4.2詳細說明
SourData , Object,需要轉換的源數(shù)據(jù)
DestType ,DataType, 數(shù)據(jù)類型枚舉,見4.2詳細說
DestData ,Object,轉換后的目標數(shù)據(jù)(傳地址方式的形式參數(shù))
StartByte ,Int16,目標數(shù)據(jù)從源數(shù)據(jù)取數(shù)的起始字節(jié)(可選參數(shù))
返回值:Int16,函數(shù)執(zhí)行結果,見5.3詳細說明。
*1: Handle參數(shù)說明
為方便同一應用程序連接多臺PLC而設置的參數(shù),在通訊組件外部調用時,定義一個全局變量,DLL在與PLC網(wǎng)絡連接成功以后,自動分配PLC句柄數(shù)據(jù),外部程序通過該句柄區(qū)分操作不同的PLC;變量為輸入輸出型參數(shù),即傳地址方式的形式參數(shù),外部賦值無效。
4.2 枚舉結構體參數(shù)說明:
--PlcMemory 要操作的PLC的內存區(qū)域類型:
DI: 數(shù)字輸入端口;
DQ: 數(shù)字輸出端口;
MR: 內部中間繼電器區(qū)域;
DR: 內部數(shù)據(jù)寄存器V/DB區(qū)域;
--PrtType 串口通訊的校驗方式
None:無校驗
Odd:奇校驗
Even:偶檢驗
4.3 返回值說明:
0 執(zhí)行成功;
-1 IP地址或端口參數(shù)錯誤;
-2 網(wǎng)絡連接錯錯誤;
-3 連接參數(shù)錯誤導致連接失敗(如Rack>7 、Slot>15等);
-4 PLC握手連接異常;
-5 PLC握手無響應;
-6 PLC握手響應錯誤;
-10 讀數(shù)據(jù)超過最大數(shù)據(jù)量限制;
-11 讀數(shù)據(jù)時數(shù)據(jù)發(fā)送異常;
-12 讀數(shù)據(jù)時PLC響應超時;
-13 讀數(shù)據(jù)PLC返回格式錯誤;
-14 讀數(shù)據(jù)PLC返回數(shù)據(jù)錯誤;
-15 讀數(shù)據(jù)PLC返回數(shù)據(jù)校驗錯誤;
-18 PLC的網(wǎng)絡句柄解析錯誤;
-19 PLC的網(wǎng)絡句柄數(shù)據(jù)錯誤;
-20 寫數(shù)據(jù)超過最大數(shù)據(jù)量限制;
-21 寫數(shù)據(jù)時數(shù)據(jù)發(fā)送異常;
-22 寫數(shù)據(jù)PLC響應超時;
-23 寫數(shù)據(jù)PLC返回格式錯誤;
-24 寫數(shù)據(jù)PLC返回數(shù)據(jù)錯誤;
-25 寫數(shù)據(jù)PLC返回數(shù)據(jù)校驗錯誤;
-28 PLC的網(wǎng)絡句柄解析錯誤;
-29 PLC的網(wǎng)絡句柄數(shù)據(jù)錯誤;
-31 數(shù)據(jù)轉換時源數(shù)據(jù)處理錯誤;
-32 數(shù)據(jù)轉換時目標數(shù)據(jù)處理錯誤;
-41 位操作函數(shù)的參數(shù)錯誤;
-70 PLC內存區(qū)域的功能受限制;
-80 PC系統(tǒng)中無網(wǎng)卡;
-81 PC的IP地址格式錯誤;
-82 PLC的IP地址格式錯誤;
-83 PING命令返回錯誤;
-99 連接序列號錯誤或測試次數(shù)超過試用限制;
5.0 組件使用步驟
5.1 基本步驟
a. 復制DLL、OCX文件到需要用到該組件的工程項目目錄下;
b. 注冊DLL、OCX文件(VS.NET平臺的DLL程序集組件不用注冊);
c. 在項目開發(fā)環(huán)境里引用DLL文件,不同的開發(fā)環(huán)境引用方式有區(qū)別,具體參見所用語言的幫助文檔;
d. 參照例程定義、實例化通訊組件,編寫相關通訊代碼;
5.2 DLL注冊方法
VS.NET平臺的DLL程序集組件不用注冊,ActiveX的COM組件(*.dll/*.ocx)須要在系統(tǒng)下注冊才能正常使用,注冊的方法主要有兩種:
a. 代碼注冊:用Windows提供的Shell命令,Shell “regsvr32 \s ” + 組件的完整路徑及文件名稱;
b. 手動注冊:同時按下 “Win”鍵 +“R”建,在彈出的運行對話框中輸入:
“Regsvr32 ” + 空格 + 組件的完整路徑及文件名稱,然后點“確認”按鈕;
Windows7 及以上的系統(tǒng)下注冊,建議對用戶賬戶作以下設置:
控制面板->用戶賬號和家庭安全->用戶賬戶->更改用戶賬戶控制設置,把滑竿拖到最下面,即“從不通知”。
Windows7 及以上系統(tǒng)64位注冊方法:
a. 在C:\Windows\SysWOW64\下新建目錄(以 regdll 為例),復制需要注冊的dll到這個目錄下(以WinTcpS7.dll為例);
b. 點擊開始,在“搜索程序和文件”里鍵入cmd,然后在搜索出來的cmd菜單上右鍵,以管理員的權限運行;
c. 此時cmd提示符為C:\Windows\System32,鍵入: Regsvr32 C:\Windows\System32\regdll\WinTcpS7.dll
d. 按回車鍵,然后提示注冊成功(注意此時使用的是syswow64目錄下的regsvr32.exe,而不是system32下的regsvr32.exe)。