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