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
利用软件编程方式,可以更加灵活实现各种非常规的通讯。
由于自行编写的程序在工程师站/操作员站运行,需要占用一定的CUP时间及内存,因此在通讯数据量较大,同时要求通讯速度较快时,由于没有专业通讯软件的“例外报告”机制,建议不要采用自行开发程序的办法。
由于自行编写的程序通常没有“数据缓存”机制,在传送非常重要的数据时应该谨慎使用。
自行编程主要工作为了两方面,一为I/A数据的读写及处理,一为通讯的实现。
通常自行开发通讯软件包括:串口通讯(如智能前端)、TCP/IP通讯(如实时数据传送)、FTP通讯(如定期传送报表文本)、基于TCP/IP的MODBUS协议通讯。
以上几种通讯方式在通讯的实现方式上不同,但在I/A’s内数据的读写操作是一样的,接下来将阐述软件编程时的主要函数及方式:
2特点
使用FOXAPI编程比较简单,程序效率也很高,但程序的执行需要FOXAPI的支持,编译好的程序只能在装有FOXAPI的AW、AP机器中运行。PI实时数据库实际上便是利用FOXAPI函数编写的应用程序。
lHICALL函数–实现具有I/A’s风格的人机界面(HUMANINTERFACE)编程,包括显示元素,如:矩形、圆弧、填充色;对话框、菜单结构、鼠标键盘驱动、查询、文件驱动等,事实上,整个I/A’s的人机界面编写既是通过这些函数完成。
lIPCALL函数–实现I/A’s系统内部通讯编程,如:SOE软件等。
lICCAPI函数–实现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通讯的实现
在用软件编程实现通讯时所采用的具体的通讯硬件上,既可以通过串口实现RS-232通讯,也可以通过AUI网卡、BNC网卡、RJ-45网卡实现FTP通讯、TCP/IP通讯。
当与I/A’s通讯的其它设备(如智能数据采集前端、GPS、自动同期装置等非通用设备)可以提供串口通讯,且通讯点数量不多时,采用专门的硬件实现通讯硬件不是一个非常经济的方案,此时可以采用RS-232实现通讯。
用RS-232实现通讯时,首先应初始化通讯端口,然后可以按RS-232通讯规程(RXD,TXD,RTS,CTS,DSR,DTR,DCD信号),发送指令并接受数据。
以下是初始化端口的一段例程:
如果与I/A’s进行通讯的是PC机或其它DCS,比较好的通讯办法是利用RJ-45等通讯口,按FTP协议或TCP/IP协议进行通讯。其中,FTP通讯的效率较低,且一直有读盘/写盘动作,对机器的影响较大,但此方法比较简单,容易实现,因此,在通讯不频繁的时候(建议大于一小时),也可以采用这个办法。在更多的时候,则建议使用TCP/IP协议进行通讯。
利用TCP/IP进行通讯时,有两个协议可以选择:TCP及UDP,其中TCP(TransportControlProtocol,传输控制协议)是面向联接的,它提供高可靠服务,尤其适用于传输大量报文信息。UDP(UserDatagramProtocol,用户数据报协议)是无联接的,它提供GX率的服务,适用于一次传输少量报文信息的场合。
UDP通讯的程序的编写也比较容易,只需指定客户机的IP地址(或主机名)及传送端口号即可,下面是一段利用UDP初始化例程: