1.系統簡介
ã€Šå‹•åŠ›å·¥æ®µè‡ªæŽ§ç³»çµ±æ”¹é€ ã€‹é …ç›®æ˜¯å°å—纖公å¸åŽŸæœ‰å‹•åŠ›å·¥æ®µçš„è‡ªæŽ§ç³»çµ±é€²è¡Œæ”¹é€ å’Œå„ªåŒ–ã€‚ç›®æ¨™æ˜¯å……åˆ†åˆ©ç”¨åŽŸæœ‰è»Ÿç¡¬ä»¶è³‡æºï¼Œç”¨æœ€å°‘的投入ç²å¾—高效ã€å®‰å…¨çš„系統性能。 原動力工段包括:化水車間ã€å†·å‡ç©ºå£“車間(簡稱動力車間)ã€è»Ÿæ°´ç«™åŠä¸€äºŒæ³µæˆ¿è»Šé–“,å„è‡ªæ“æœ‰è‡ªå·±çš„æŽ§åˆ¶å®¤ã€‚æ”¹é€ å‰ï¼ŒåŒ–水車間已采用了一套 SIEMENS TI545 PLC 和兩臺全點的 INTOUCH æ“作站實ç¾ç›£ 控,泵房車間也已采用了一套 SIEMENS TI545 PLC 和兩臺 256 點的 INTOUCH æ“作站實ç¾ç›£æŽ§ï¼Œå‹•力車間除 5 臺壓縮空氣干燥器采用 GE 90-30PLC 控制外其余è¨å‚™çš„監控å‡ç”¨ç›¤è£å„€è¡¨å¯¦ç¾ã€‚åŽŸå‹•åŠ›å·¥æ®µç³»çµ±çµæ§‹ 如下圖所示。
[align=center]

æ”¹é€ å‰çš„ç³»çµ±çµæ§‹[/align]
ç³»çµ±æ”¹é€ åŽï¼Œæ³µæˆ¿è»Šé–“和動力車間由原泵房車間的 SIEMENS TI545 PLC æŽ§åˆ¶ï¼ˆéœ€å¢žåŠ ä¸€äº›å¡ä»¶ï¼‰ï¼ŒåŒ–æ°´è»Šé–“åœ¨åŽŸç³»çµ±åŸºç¤Žä¸Šå¢žåŠ ä¸€äº›åŠŸèƒ½ã€‚å°‡åŽŸæœ‰çš„å…©è‡ºå…¨é»ž INTOUCH和一臺256點 INTOUCH移入新è¨çš„é›†ä¸æŽ§åˆ¶å®¤ï¼Œå¯¦ç¾ä¸‰å€‹è»Šé–“的集ä¸ç›£æŽ§ï¼Œåœ¨åŒ–水車間è¨ä¸€è‡º 256點 INTOUCH æ“作站,供ç¾å ´å·¡å›žæª¢æŸ¥æ™‚使用。
åŒæ™‚系統通éŽä¸€è‡ºæ–°è¨çš„æ•¸æ“šåŠ Web æœå‹™å™¨èˆ‡å…¬å¸ç®¡ç†ç¶²é€£æŽ¥ï¼Œå…¬å¸å’Œå·¥æ®µç®¡ç†è€…å¯é€šéŽå…¬å¸å€åŸŸç¶²ç²å–生產éŽç¨‹çš„æ•¸æ“šå’Œå ±è¡¨ã€‚
2.系統功能åŠç‰¹é»ž
2.1 å†—ä½™çš„ç¸½ç·šåŠæ“作站
ç³»çµ±åŒ…å« 2 臺全點的 INTOUCH(SERVER1ã€SERVER2)和 2 臺 256 點的 INTOUCH(CLIENT1ã€CLIENT2),SERVER1ã€SERVER2 分別通éŽå„自的 TIWAY å¡èˆ‡åŒ–æ°´ã€æ³µæˆ¿çš„ PLCæ§‹æˆå…©æ¢å†—余的TIWAY總線。CLIENT1ã€CLIENT2 則通éŽé 程變é‡è¨ªå•æŸè‡ºå…¨é»ž INTOUCH 上的數據從而實ç¾å°ç¾å ´çš„監控。通常 CLIENT1ã€CLIENT2 åªèˆ‡ SERVER1ã€SERVE2 ä¸çš„一臺通訊,當發生通訊故障時會自動嘗試與å¦ä¸€è‡ºSERVER連接。INTOUCH ä¸çš„“ PLCåŠç¸½ç·šçš„ç•¶å‰ç‹€æ…‹ã€‚
æ”¹é€ åŽçš„ç³»çµ±çµæ§‹

圖ä¸ç´…線表示æ“作站在線,黑色表示離線。在 CLIENT1ã€CLIENT2的“ 狀態â€ç•«é¢ä¸ï¼Œå·¥ç¨‹å¸«å¯ä»¥æ‰‹å‹•åˆ‡æ› CLIENT與 SERVER的連接。
2.2“256 點的 CLIENT 通éŽé 程變é‡è¨ªå•全點的 SERVER å¾žè€Œè¨ªå• PLC,這樣 CLIENT 的變é‡é…ç½®ä¸è¶…éŽ256é»žã€‚åŒæ™‚系統é‹ç”¨äº†â€œåˆ†å¸ƒå¼å ±è¦â€å’Œâ€œ 弿·å²è¶¨å‹¢â€ç‰åŠŸèƒ½ï¼Œæ‰€æœ‰çš„å ±è¦è¨˜éŒ„åŠæ·å²è¶¨å‹¢éƒ½å˜å„²åœ¨å…¨é»žçš„ SERVER 上,CLIENT ä¸Šé¡¯ç¤ºçš„å ±è¦å’Œæ·å²è¶¨å‹¢æ˜¯å¾ž SERVER 上ç²å¾—çš„??梢哉f,SERVER 充當了 INTOUCHæœå‹™å™¨è€Œ CLIENT是一個 INTOUCH 客戶端,åªéœ€è¼ƒä½Žçš„é…ç½®å³å¯ã€‚ç•¶åˆ‡æ› SERVER時,布å¼å ±è¦â€å’Œâ€œåˆ†å¸ƒå¼æ·å²è¶¨å‹¢â€ä¹Ÿè·Ÿè‘—自動切æ›ã€‚
1.“分布å¼å ±è¦â€çš„è¨ç½®
在INTOUCH組態ä¸éœ€ç”¨ “ 分布å¼å ±è¦ †控件 , 在控件的 å ±è¦æŸ¥è©¢æ¬„ä¸è¼¸å…¥â€œ\\SERVER1\INTOUCH!DONGLIâ€ï¼ŒSERVER1 為缺çœé€£æŽ¥çš„計算機å,DONGLI 表示 INTOUCH ä¸çš„DONGLI å ±è¦çµ„ï¼ˆå ±è¦çµ„包括 DONGLIã€HS)。在 SERVER 的計算機屬性需é¸ä¸â€œæœ¬æ©Ÿå°‡æä¾›å ±è¦â€ï¼›è€Œåœ¨ CLIENT 的計算機屬性ä¸éœ€é¸ä¸â€œæœ¬æ©Ÿå°‡é¡¯ç¤ºå ±è¦â€ã€‚é‹è¡Œæ™‚ CLIENT 將通éŽå‡½æ•¸åˆ‡æ›èˆ‡ SERVER 的連接。 ç‚ºäº†çµ±ä¸€å ±è¦è¨ç½®ï¼Œæˆ‘å€‘å°‡å ±è¦åšåœ¨ PLC çš„å ±è¦æ¨¡å¡Šä¸é€šéŽå° PLC 變é‡â€œAHAï¼ˆå ±è¦ä¸Šé™ï¼‰ã€AHHAï¼ˆå ±è¦ä¸Šä¸Šé™ï¼‰ã€ALAï¼ˆå ±è¦ä¸‹é™ï¼‰ã€ALLAï¼ˆå ±è¦ä¸‹ä¸‹é™ï¼‰ã€APVï¼ˆå ±è¦éŽç¨‹å€¼ï¼‰ã€AVFï¼ˆå ±è¦ç‹€æ…‹å—)â€çš„ 讀寫來判斷和è¨ç½®å ±è¦ã€‚æœ‰å ±è¦ç™¼ç”Ÿæ™‚ï¼Œåªæœ‰ SERVER æœƒå°‡å ±è¦ä¿¡æ¯å¯«å…¥å ±è¦è¨˜éŒ„,SERVER2 åœ¨å¯«å ±è¦ä¿¡ æ¯å‰å…ˆåˆ¤æ–· SERVER1 是å¦åœ¨é‹è¡Œï¼Œä»¥å…é‡å¾©å¯«å…¥ã€‚
2ï¼Žâ€œåˆ†å¸ƒå¼æ·å²è¶¨å‹¢â€çš„è¨ç½®ï¼ˆä»¥ SERVER1 為例)在 SERVER çš„ INTOUCH 組態ä¸éœ€å°‡æ·å²æ•¸æ“šçš„å˜æ”¾è·¯å¾‘è¨ç‚º INTOUCH 默èªè·¯å¾‘。CLIENT çš„ INTOUCH 組態需在“分布å¼å稱管ç†å™¨â€ä¸çš„â€œåˆ†å¸ƒå¼æ·å²â€é‡Œæ·»åŠ ä¸€é …ï¼Œä¾›æ‡‰å™¨å稱為“SERVER1â€ï¼Œ 路徑為“\\SERVER1\D\NCFC2000S1â€ï¼ˆå·¥ç¨‹è·¯å¾‘)å³å¯ã€‚在 CLIENT ä¸è¨ªå• SERVER1 çš„æ·å²æ•¸æ“šéœ€å¯«æˆâ€œSERVER1.TAGNAMEâ€ã€‚SERVER2 çš„è¨ç½®èˆ‡ SERVER1 相åŒã€‚
3.é 程變é‡çš„引用
在 CLIENT 上使用é 程變é‡åªéœ€åœ¨è®Šé‡åå‰åŠ è¨ˆç®—æ©Ÿåå³å¯ï¼Œç„¡éœ€åœ¨æ¨™è¨˜åå—兏䏿–°å»ºè®Šé‡ï¼Œæ‰€ 以ä¸å 點數。(SERVER:TAGNAME)
4.自動切æ›åŠŸèƒ½
CLIENT 通éŽé 程變é‡è§€å¯Ÿ SERVER 上的$Second 變é‡ï¼Œè‹¥å®ƒåœ¨åœ¨ä¸€æ®µæ™‚間內無變化則表明與 SERVER 的連接出ç¾å•題,這時å¯é€šéŽ SetAccessName 函數將 CLIENT 上的é 程變é‡åˆ‡æ›åˆ°å¦ä¸€è‡º SERVER 上。
2.3 公用的æ“作窗å£
系統ä¸å°äºŽå…·æœ‰ç›¸åŒæ“作接å£è¨å‚™ä½¿ç”¨äº†å…¬ç”¨çš„æ“ä½œçª—å£ï¼Œè€Œä¸æ˜¯å°æ‡‰æ¯å€‹è¨å‚™éƒ½å‰µå»ºä¸€å€‹æ“作窗å£ï¼Œé€™æ¨£å¤§å¤§æ¸›å°‘了窗å£çš„æ•¸é‡ã€‚實ç¾å®ƒéœ€è¦ç”¨åˆ°é–“接變é‡ï¼Œå¯ä»¥å°‡é–“接變é‡çœ‹ä½œä¸€å€‹æŒ‡é‡ï¼Œç•¶å°æŸå€‹è¨å‚™æ“ä½œæ™‚ï¼Œåˆ©ç”¨é–“æŽ¥è®Šé‡æŒ‡å‘æ“作變é‡ï¼Œé€™æ¨£ï¼Œå°é–“接變é‡çš„賦值就會作用到æ“作變é‡ä¸Šï¼Œæ“作變é‡çš„è®ŠåŒ–ä¹Ÿæœƒåæ‡‰åˆ°é–“接變é‡ä¸Šã€‚
ä»¥éŽæ¿¾æ°´æ³µç‚ºä¾‹ï¼Œåœ¨éŽæ¿¾æ°´è™•ç†ç³»çµ±ä¸ï¼Œé»žæ“Š 3#éŽæ¿¾æ³µï¼Œå½ˆå‡ºæ“作窗å£ï¼Œå¦‚下圖所示:

3#éŽæ¿¾æ³µçš„æ“ä½œè®Šé‡ç‚ºâ€œRUN-3#GLB(啟動)â€ã€â€œSTOP-3#GLBï¼ˆåœæ¢ï¼‰â€ã€â€œRL-3#GLB(å饋)â€ã€
“AUTO-3#GLB(自動)â€ã€â€œREPAIR-3#GLB(檢修)â€é»žæ“ŠéŽæ¿¾æ³µæ™‚執行語å¥ï¼š
DL_START.NAME=RUN-3#GLB.NAMEï¼›
DL_STOP.NAME=STOP-3#GLB.NAMEï¼›
DL_RL.NAME = RL-3#GLB.NAMEï¼›
AUTO.NAME = AUTO-3#GLB.NAMEï¼›
DL_REPAIR.NAME=REPAIR-3#GLB.NAMEï¼›
“DL_XXXâ€ç‚ºé–“接變é‡ã€‚在æ“作窗å£ä¸åªéœ€å°é–“接變é‡è³¦å€¼å³å¯ã€‚ä¾‹å¦‚åœ¨â€œå•Ÿå‹•â€æŒ‰éˆ•的動作屬性ä¸å¯«åˆ°ï¼š
IF DL_START.Name<>"NULL" AND DL_STOP.Name<>"NULL" THEN
DL_START=1;
DL_STOP=0;
Record=DL_START.Comment;
SQLInsert( ConnectionId, "CortrolLog", "CortrolLog" ); //寫æ“作紀錄
ELSE
IF DL_START.Name = = "NULL" THEN
DL_STOP=0;
Record=StringLeft( DL_STOP.Comment, StringLen( DL_STOP.Comment )/2 );
SQLInsert( ConnectionId, "CortrolLog", "CortrolLog" );
ELSE
DL_START=1;
Record=StringLeft( DL_START.Comment, StringLen( DL_START.Comment )/2 );
SQLInsert( ConnectionId, "CortrolLog", "CortrolLog" );
ENDIF;
ENDIF;
å› ç‚ºè¨å‚™çš„啟åœä¸€èˆ¬æœ‰ 1.å•Ÿå‹•èˆ‡åœæ¢æ˜¯ä¸€å€‹è¼¸å‡ºï¼›2.å•Ÿå‹•èˆ‡åœæ¢æ˜¯å…©å€‹è¼¸å‡ºã€‚為一個輸出時我們將輸出變é‡çš„ COMMENT 屬性寫為“XXX 啟動 XXX åœæ¢â€é€™æ¨£ï¼Œåœ¨å¯«æ“ä½œè¨˜éŒ„æ™‚éœ€å– COMMENT çš„å·¦ä¸€åŠæˆ–å³ä¸€åŠï¼›è‹¥ç‚ºå…©å€‹è¼¸å‡ºæ™‚,變é‡çš„ COMMENT 將為“XXX å•Ÿå‹•â€æˆ–“XXXåœæ¢â€ï¼Œå¯«è¨˜éŒ„時å–å°æ‡‰è®Šé‡çš„ COMMENT å³å¯ã€‚
CLIENT çš„æƒ…æ³æ¯”è¼ƒç‰¹æ®Šï¼Œå› ç‚º CLIENTéœ€ç”¨é–“æŽ¥è®Šé‡æŒ‡å‘é 程變é‡ï¼Œè€Œé 程變é‡çš„ COMMENT 無法賦給間接變é‡çš„ COMMENT,所以為了在公用窗å£ä¸ç²å¾—é 程變é‡çš„ COMMENT 我們åªèƒ½åˆ©ç”¨é–“接變é‡çš„NAME(å³é 程變é‡çš„ NAMEï¼‰åœ¨æ•¸æ“šåº«ä¸æŸ¥æ‰¾åˆ° COMMENT,å†å¯«æ“作記錄。語å¥å¦‚下:(寫記錄的æ“作åƒè¦‹â€œæ•¸æ“š
IF DL_START.Name<>"NULL" AND DL_STOP.Name<>"NULL" THEN
DL_START=1;
DL_STOP=0;
Record=StringRight( DL_START.Name ,StringLen( DL_START.Name )-7 );
SQLSelect( ConnectionId, "COMM", "COMMENT", "device_id="+"’"+Record + "’" , "" ); //查找
COMMENT
SQLFirst( ConnectionId );
Record=StringTrim( COM, 3 );
SQLEnd( ConnectionId );
SQLInsert( ConnectionId, "CortrolLog", "CortrolLog" ); //寫æ“作紀錄
ELSE
IF DL_START.Name=="NULL" THEN
DL_STOP=0;
Record=StringRight( DL_STOP.Name ,StringLen( DL_STOP.Name )-7 );
SQLSelect( ConnectionId, "COMM", "COMMENT", "device_id="+"’"+Record + "’" , "" );
SQLFirst( ConnectionId );
Record=StringTrim( COM, 3 );
Record=StringLeft( Record, StringLen( Record )/2 );
SQLEnd( ConnectionId );
SQLInsert( ConnectionId, "CortrolLog", "CortrolLog" );
ELSE
DL_START=1;
Record=StringRight( DL_START.Name ,StringLen( DL_START.Name )-7 );
SQLSelect( ConnectionId, "COMM", "COMMENT", "device_id="+"’"+Record + "’" , "" );
SQLFirst( ConnectionId );
Record=StringTrim( COM, 3 );
Record=StringLeft( Record, StringLen( Record )/2 );
SQLEnd( ConnectionId );
SQLInsert( ConnectionId, "CortrolLog", "CortrolLog" );
ENDIF;
ENDIF;
2.4 數據庫的應用
系統ä¸çš„ IBM æœå‹™å™¨ä½œç‚ºæ•¸æ“šå˜å„²å’Œç™¼å¸ƒçš„æœå‹™å™¨ï¼Œå®‰è£äº† SQL SERVER 2000ï¼Œç³»çµ±çš„å ±è¦æ·å²è¨˜éŒ„ å’Œæ“作記錄以åŠè¨å‚™æª”æ¡ˆéƒ½å˜æ”¾åœ¨å為“DL†的數據庫ä¸ã€‚
2.4.1 ODBC 的連接
INTOUCH é€šéŽ ODBC è¨ªå• SQL SERVER,在 ODBC ä¸å»ºç«‹å為“DLâ€çš„用戶 DSN,在 INTOUCH
ä¸ç”¨èªžå¥ï¼š
SQLConnect( ConnectionId, "DSN=DL");
建立連接,若連接æˆåŠŸå‰‡ ConnectionId > 0 。在執行æ¯ä¸€æ¢ SQL èªžå¥æ™‚都會有一個返回值,若返回值為 0 則表示執行æˆåŠŸï¼Œå¦å‰‡è¡¨ç¤ºèˆ‡æ•¸æ“šåº«é€£æŽ¥ä¸æ£å¸¸ï¼Œéœ€é‡æ–°å»ºç«‹é€£æŽ¥ã€‚為了時刻檢測與數據庫æœå‹™å™¨çš„連接情 æ³ï¼Œåœ¨æ‡‰ç”¨ç¨‹åºè…³æœ¬ä¸æ¯ 5 ç§’é˜åŸ·è¡Œä¸€æ¢æŸ¥è©¢èªžå¥ï¼š
IF ResultCode = = 0 THEN
ResultCode = SQLSelect( ConnectionId , "SYSUSERS" ,"SYSUSERS","UID=0", "" );
ENDIFï¼›
åŒæ™‚在æ¢ä»¶è…³æœ¬ä¸åˆ¤æ–· ResultCode (å³è¿”回值)若 ResultCode <> 0 則斷開連接:
SQLDisconnect( ConnectionId );
ConnectionId = 0ï¼›
SHOW “通訊狀態â€ï¼› 打開“通訊狀態â€ç•«é¢ï¼Œé¡¯ç¤ºä¿¡æ¯â€œèˆ‡æœå‹™å™¨é€£æŽ¥å¤±??ï¼â€åŠâ€œé‡è©¦â€ã€â€œå–消â€å…©å€‹æŒ‰éˆ•。按“é‡è©¦â€ï¼Œç½®
ä½ç³»çµ±å°‡æ¯ 20 秒進行一次嘗試連接:
IF RETRY = = 1 THEN
ResultCode = SQLConnect( ConnectionId, "DSN=DL");
ENDIFï¼›
直到 ResultCode = 0 為æ¢ã€‚
å˜—è©¦é€£æŽ¥æ™‚ç³»çµ±å°‡è®Šå¾—å¾ˆå¿™ã€‚è‹¥æƒ³å–æ¶ˆé€£æŽ¥ï¼Œå‰‡æŒ‰â€œå–æ¶ˆâ€æŒ‰éˆ•,系統將ä¸å†èˆ‡æœå‹™å™¨é€£æŽ¥ï¼Œå°ç¾å ´çš„監控 å¯ä»¥æ£å¸¸é€²è¡Œï¼Œä½†æ“ä½œèˆ‡å ±è¦è¨˜éŒ„都將ä¸å¯«å…¥æœå‹™å™¨ï¼ˆæ•¸æ“šç™¼å¸ƒä¸å—å½±éŸ¿ï¼‰ã€‚å¸Œæœ›é‡æ–°é€£æŽ¥æœå‹™å™¨æ™‚,åªéœ€ 在“通訊狀態â€ç•«é¢ä¸‹æŒ‰â€œé‡è©¦â€æŒ‰éˆ•å³å¯ã€‚
2.4.2 ç¶å®šåˆ—表
在全點 INTOUCH ä¸éœ€å»ºç«‹å››å€‹ç¶å®šåˆ—表:“alarmhisâ€ï¼Œâ€œcortrologâ€ï¼Œâ€œdeviceâ€ï¼Œâ€œsysusersâ€åˆ†åˆ¥å° 應數據庫ä¸çš„è¡¨æ ¼?ï¼çšŠysusersâ€åªæ˜¯ç‚ºäº†æª¢æŸ¥ ODBC 連接用的,并無其他用處。在æ¯å€‹åˆ—表ä¸ç”¨è®Šé‡èˆ‡å„ å—æ®µç›¸å°æ‡‰ï¼Œå¦‚“cortrolog†ä¸è®Šé‡ “DATETIMEâ€ å°æ‡‰å—段“DATETIME†;變é‡â€œ$OPERATERâ€ å°æ‡‰å—段“USERNAME†;變é‡â€œRECORDâ€å°æ‡‰å—段“RECORDâ€ç‰ã€‚在寫記錄å‰ï¼Œåªéœ€å…ˆå°è®Šé‡å¾© 值,å†åŸ·è¡Œèªžå¥ï¼š
SQLInsert( ConnectionId, "CortrolLog", "CortrolLog" ); å³å¯ã€‚
查詢記錄時,首先準備一個查詢æ¢ä»¶ï¼Œä¾‹å¦‚åœ¨â€œç¨€ç¤¬æ± æ¶²ä½â€çš„å‹•ä½œè…³æœ¬ä¸æœ‰ä»¥ä¸‹èªžå¥
DEVICE_ID= LT51027.Name; ShowAt("è¨å‚™æª”案",$ObjHor +200, $ObjVer +50);
SQLSelect( ConnectionId , "DevICE" , "DevICE" , "Device_ID=" + "’"+ device_id +"’" , "" ); SQLFirst( ConnectionId );
é¦–å…ˆå°‡è¦æŸ¥è©¢çš„è¨å‚™å(LT51027)賦給 DEVICE_ID。
“SQLSelectâ€èªžå¥å¯¦éš›ä¸ŠåŸ·è¡Œäº†ä¸€æ¢ SQL 語å¥ï¼š
SELECT *FROM DEVICE WHERE DEVICE_ID =’LT51027’
ç„¶åŽå°‡æŸ¥è©¢åˆ°çš„è¨˜éŒ„çš„å—æ®µå€¼è³¦çµ¦ç¶å®šåˆ—表ä¸çš„變é‡ã€‚這樣在è¨å‚™æª”案ä¸é‡Œï¼Œåªè¦æ”¾ä¸Šç¶å®šåˆ—表ä¸çš„變é‡å°±
èƒ½é¡¯ç¤ºæŸ¥è©¢çš„çµæžœäº† ã€‚ä¸‹åœ–ç‚ºå¾žæ•¸æ“šåº«ä¸æŸ¥åˆ°çš„è¨å‚™â€™ LT51027â€™çš„ä¿¡æ¯ ã€‚

2.3 管ç†å±¤æ‡‰ç”¨ç¨‹åº 有了數據庫ä¸çš„“æ“作記錄â€ã€â€œå ±è¦è¨˜éŒ„â€å’Œâ€œè¨å‚™æª”案â€ï¼Œå¯ä»¥æ–¹ä¾¿çš„開發管ç†å±¤æ‡‰ç”¨ç¨‹åºã€‚下圖是用 Delphi 開發的一個客戶端軟件,用來查詢記錄åŠç¶è·è¨å‚™æª”案,它å¯ä»¥é‹è¡Œåœ¨å·¥ç¨‹å¸«çš„ PC 上。
å¦å¤–,利用 Intouch çš„ NETDDE 功能,å¯å°‡ç”Ÿç”¢æ•¸æ“šå¯¦æ™‚地通éŽç¬¬ä¸‰æ–¹è»Ÿä»¶é€²è¡Œç™¼å¸ƒï¼Œé€™é‡Œæ¶‰åŠæ›´å¤šçš„軟件編程技術,就ä¸åœ¨æ·±å…¥äº†ã€‚下圖為將數據以 WEB 的方å¼é€²è¡Œç™¼å¸ƒã€‚
çµæŸèªž
以上的數據庫åŠWEB功能也å¯ä»¥é€šéŽIndustrialSQL Severå’ŒSuiteVoyager實ç¾ï¼Œä»¥ä¸Šçš„æ‡‰ç”¨å¯ä»¥èªªæ˜Ž InTouchç„¡è«–åœ¨è…³æœ¬å’Œç¬¬ä¸‰æ–¹è»Ÿä»¶çš„æŽ¥å£æ–¹é¢éƒ½æ˜¯éžå¸¸éˆæ´»çš„。在éŽåŽ»ï¼Œçµ„æ…‹è»Ÿä»¶å¾€å¾€åªé‡å°ä¸‹ä½æ©Ÿï¼Œä¸€å€‹ 控制系統通常與外界隔離,æˆç‚ºä¿¡æ¯å¤å³¶ï¼Œä½¿ç”¨Intouchå¯ä»¥åšåˆ°è»Šé–“層與管ç†å±¤çš„緊密çµåˆï¼Œç®¡ç†è€…å¯ä»¥åœ¨ 辦公室里ç€è¦½åˆ°ç”Ÿç”¢ä¸€ç·šçš„æ•¸æ“šï¼Œä½¿ä¼æ¥ä»¥æ›´é«˜çš„æ•ˆçŽ‡é€²è¡Œç”Ÿç”¢å’Œç®¡ç†.