1771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC3171771-IXHR ABGE IC693ACC317
利用軟件編程方式,可以更加靈活實(shí)現(xiàn)各種非常規(guī)的通訊。
由于自行編寫的程序在工程師站/操作員站運(yùn)行,需要占用一定的CUP時(shí)間及內(nèi)存,因此在通訊數(shù)據(jù)量較大,同時(shí)要求通訊速度較快時(shí),由于沒有專業(yè)通訊軟件的“例外報(bào)告”機(jī)制,建議不要采用自行開發(fā)程序的辦法。
由于自行編寫的程序通常沒有“數(shù)據(jù)緩存”機(jī)制,在傳送非常重要的數(shù)據(jù)時(shí)應(yīng)該謹(jǐn)慎使用。
自行編程主要工作為了兩方面,一為I/A數(shù)據(jù)的讀寫及處理,一為通訊的實(shí)現(xiàn)。
通常自行開發(fā)通訊軟件包括:串口通訊(如智能前端)、TCP/IP通訊(如實(shí)時(shí)數(shù)據(jù)傳送)、FTP通訊(如定期傳送報(bào)表文本)、基于TCP/IP的MODBUS協(xié)議通訊。
以上幾種通訊方式在通訊的實(shí)現(xiàn)方式上不同,但在I/A’s內(nèi)數(shù)據(jù)的讀寫操作是一樣的,接下來將闡述軟件編程時(shí)的主要函數(shù)及方式:
2特點(diǎn)
使用FOXAPI編程比較簡單,程序效率也很高,但程序的執(zhí)行需要FOXAPI的支持,編譯好的程序只能在裝有FOXAPI的AW、AP機(jī)器中運(yùn)行。PI實(shí)時(shí)數(shù)據(jù)庫實(shí)際上便是利用FOXAPI函數(shù)編寫的應(yīng)用程序。
lHICALL函數(shù)–實(shí)現(xiàn)具有I/A’s風(fēng)格的人機(jī)界面(HUMANINTERFACE)編程,包括顯示元素,如:矩形、圓弧、填充色;對(duì)話框、菜單結(jié)構(gòu)、鼠標(biāo)鍵盤驅(qū)動(dòng)、查詢、文件驅(qū)動(dòng)等,事實(shí)上,整個(gè)I/A’s的人機(jī)界面編寫既是通過這些函數(shù)完成。
lIPCALL函數(shù)–實(shí)現(xiàn)I/A’s系統(tǒng)內(nèi)部通訊編程,如:SOE軟件等。
lICCAPI函數(shù)–實(shí)現(xiàn)I/A’s控制處理器CP中CIO的相關(guān)操作。
l數(shù)學(xué)庫–提供各種經(jīng)典數(shù)值計(jì)算的調(diào)用函數(shù)。
l物理特性庫–提供各種物理特性計(jì)算的調(diào)用函數(shù),包括水、蒸汽的焓、熵等計(jì)算。
2intvpt(floatp,floatt,float*v)
此函數(shù)根據(jù)蒸汽的壓力及溫度計(jì)算蒸汽的容積。
2inthpt_stm(floatp,floatt,float*h)
此函數(shù)根據(jù)蒸汽的壓力及溫度計(jì)算蒸汽的焓。
2intspt_stm(floatp,floatt,float*s)
此函數(shù)根據(jù)蒸汽的壓力及溫度計(jì)算蒸汽的熵。
2inthpt_wtr(floatp,floatt,float*h)
此函數(shù)根據(jù)水的壓力及溫度計(jì)算水的焓。
2intspt_wtr(floatp,floatt,float*s)
此函數(shù)根據(jù)水的壓力及溫度計(jì)算水的熵。
2inthpt_air(floatp,floatt,float*h)
此函數(shù)根據(jù)空氣的壓力及溫度計(jì)算空氣的焓。
2intspt_air(floatp,floatt,float*s)
此函數(shù)根據(jù)空氣的壓力及溫度計(jì)算空氣的熵。
lINFORMIX編程。
在某些需要對(duì)歷史數(shù)據(jù)進(jìn)行操作的場(chǎng)合,可以利用INFORMIX及E-SQL進(jìn)行編程。
4.2通訊的實(shí)現(xiàn)
在用軟件編程實(shí)現(xiàn)通訊時(shí)所采用的具體的通訊硬件上,既可以通過串口實(shí)現(xiàn)RS-232通訊,也可以通過AUI網(wǎng)卡、BNC網(wǎng)卡、RJ-45網(wǎng)卡實(shí)現(xiàn)FTP通訊、TCP/IP通訊。
當(dāng)與I/A’s通訊的其它設(shè)備(如智能數(shù)據(jù)采集前端、GPS、自動(dòng)同期裝置等非通用設(shè)備)可以提供串口通訊,且通訊點(diǎn)數(shù)量不多時(shí),采用專門的硬件實(shí)現(xiàn)通訊硬件不是一個(gè)非常經(jīng)濟(jì)的方案,此時(shí)可以采用RS-232實(shí)現(xiàn)通訊。
用RS-232實(shí)現(xiàn)通訊時(shí),首先應(yīng)初始化通訊端口,然后可以按RS-232通訊規(guī)程(RXD,TXD,RTS,CTS,DSR,DTR,DCD信號(hào)),發(fā)送指令并接受數(shù)據(jù)。
以下是初始化端口的一段例程:
如果與I/A’s進(jìn)行通訊的是PC機(jī)或其它DCS,比較好的通訊辦法是利用RJ-45等通訊口,按FTP協(xié)議或TCP/IP協(xié)議進(jìn)行通訊。其中,F(xiàn)TP通訊的效率較低,且一直有讀盤/寫盤動(dòng)作,對(duì)機(jī)器的影響較大,但此方法比較簡單,容易實(shí)現(xiàn),因此,在通訊不頻繁的時(shí)候(建議大于一小時(shí)),也可以采用這個(gè)辦法。在更多的時(shí)候,則建議使用TCP/IP協(xié)議進(jìn)行通訊。
利用TCP/IP進(jìn)行通訊時(shí),有兩個(gè)協(xié)議可以選擇:TCP及UDP,其中TCP(TransportControlProtocol,傳輸控制協(xié)議)是面向聯(lián)接的,它提供高可靠服務(wù),尤其適用于傳輸大量報(bào)文信息。UDP(UserDatagramProtocol,用戶數(shù)據(jù)報(bào)協(xié)議)是無聯(lián)接的,它提供高效率的服務(wù),適用于一次傳輸少量報(bào)文信息的場(chǎng)合。
UDP通訊的程序的編寫也比較容易,只需客戶機(jī)的IP地址(或主機(jī)名)及傳送端口號(hào)即可,下面是一段利用UDP初始化例程: