C API 功能
语法
|
读、写和返回的值
|
UINT16 GetAnalog(UINT16 index, FLOAT *data);
|
GetAnalog: 读取模拟量值(32位浮点数)到用“index”表示的寄存器中。
如果操作成功,返回FE_OK。
如果寄存器索引超出范围,返回FE_IO_ADDR。
如果模拟值超出了32位浮点范围,则返回FE_RANGE。
注意: GetAnalog 和 GetDouble访问的是SM2中的同一张表。
|
UINT16 SetAnalog(UINT16 index, FLOAT data);
|
SetAnalog:写模拟值(32位浮点数)到用‘index’表示的寄存器中,即使数据没有变化,也为该寄存器产生一个例外。
如果操作成功,返回FE_OK。
如果寄存器索引超出范围,返回FE_IO_ADDR。
注意: SetAnalog和SetDouble访问的是SM2中的同一张表。
|
UINT16 GetDouble(UINT16 index, DOUBLE *data);
|
GetDouble:读取模拟值(64位浮点数)到用“index”表示的寄存器中。
如果操作成功,返回FE_OK。
如果寄存器索引超出范围,返回FE_IO_ADDR。
注意: GetAnalog 和 GetDouble访问的是SM2中的同一张表。
|
UINT16 SetDouble(UINT16 index、DOUBLE data);
|
SetDouble:写模拟值(64位浮点数)到用‘index’表示的寄存器中,即使数据没有变化,也为指定寄存器产生一个例外。
如果操作成功,返回FE_OK。
如果寄存器索引超出范围,返回FE_IO_ADDR。
注意: SetAnalog和SetDouble访问的是SM2中的同一张表。
|
UINT16 GetDigital(UINT16 index, UINT16 *data);
|
GetDigital:读取16个数字值(20,000个数字量寄存器中任何一个寄存器的所有16位)到用“index”表示的寄存器中。
如果操作成功,返回FE_OK。
如果寄存器索引超出范围,返回FE_IO_ADDR。
注意:API只能一次同时读和写整个16位数字量寄存器。如果修改1位,首先读寄存器,修改相应的位,然后写入该寄存器。但是,修改单个位时,注意确保在应用程序中同时只有一个线程访问同一个数字量寄存器。
|
UINT16 SetDigital(UINT16 index, UINT16 data);
|
SetDigital:写16个数字值(20,000个数字量寄存器中任何一个寄存器的所有16位)到用‘index’表示的寄存器中,即使数据没有变化,也为该寄存器的所有16位产生一个例外。
如果操作成功,返回FE_OK。
如果寄存器索引超出范围,返回FE_IO_ADDR。
注意:API只能一次同时读和写整个16位数字量寄存器。如果修改1位,首先读寄存器,修改相应的位,然后写入该寄存器。但是,修改单个位时,注意确保在应用程序中同时只有一个线程访问同一个数字量寄存器。
|
UINT16 SetDigitalEx(UINT index, UINT16 data, UINT16 mask)
|
SetDigitalEx:写16个数字值(20,000个数字量寄存器中任何一个寄存器的所有16位)到用‘index’表示的寄存器中,并对从掩码中选择的指定位产生一个例外。即使数据没有变化,也为在掩码中设置的位触发一个例外。
如果操作成功,返回FE_OK。
如果寄存器索引超出范围,返回FE_IO_ADDR。
注意:API只能一次同时读和写整个16位数字量寄存器。如果修改1位,首先读寄存器,修改相应的位,然后写入该寄存器。但是,修改单个位时,注意确保在应用程序中同时只有一个线程访问同一个数字量寄存器。
|
UINT16 GetText(UINT16 index, char *data, int size)
|
GetText 从以 ‘index’ 标记的寄存器开始从文本寄存器读取以 ‘data’ 标记的文本。读取的字符数由 ‘size’ 表示。GetText 不会自动在所读文本中添加空的结束符。如果需要以空结束的字符串,务必在读文本之后用程序在文本串末尾添加一个空的结束符。
如果操作成功,返回FE_OK。
如果寄存器索引超出范围,返回FE_IO_ADDR。
|
UINT16 SetText(UINT16 index, char *data, int size)
|
SetText 从用 `index' 标记的寄存器开始向文本寄存器写入以 `data' 标记的文本。写入的字符数由 `size' 表示。文本值不支持基于例外处理。SetText不会自动在所写入的文本中添加空的结束符。如果需要以空结束的字符串,务必在写文本之前用程序在文本串末尾添加一个空的结束符。
如果操作成功,返回FE_OK。
如果寄存器索引超出范围,返回FE_IO_ADDR。
|
UINT16 GetCommError(UINT16 *data);
|
GetCommError:读取通讯错误标志到S寄存器。标签是一个1位整数值。
总是返回FE_OK。
|
UINT16 SetCommError(UINT16 data);
|
SetCommError:写通讯错误标签到S寄存器。标签是一个1位整数值。只能把0或1传送给SetCommError函数。使用任何其它值时将产生不可预测的结果。
总是返回FE_OK。
|
UINT16 GetAnalogAlarm(UINT16 index, INT16 *alm);
|
GetAnalogAlarm 从用 'index' 标记的模拟量寄存器中读取报警状态。关于可用报警状态的更多内容,请参考了解报警状态章节。
注意:自 iFIX 4.5 开始,对于 SM2 驱动程序仅支持 IA_OK 和 IA_COMM 报警状态。
如果操作成功,返回FE_OK。
如果寄存器索引超出范围,返回FE_IO_ADDR。
|
UINT16 SetAnalogAlarm(UINT16 index, INT16 alm);
|
SetAnalogAlarm:写报警状态到用‘index’表示的模拟量寄存器,即使数据或报警没有变化,也为该寄存器产生一个例外。关于可用报警状态的更多内容,请参考了解报警状态章节。
注意:自 iFIX 4.5 开始,对于 SM2 驱动程序仅支持 IA_OK 和 IA_COMM 报警状态。
如果操作成功,返回FE_OK。
如果寄存器索引超出范围,返回FE_IO_ADDR。
|
UINT16 GetDigitalAlarm(UINT16 index, INT16 *alm);
|
GetDigitalAlarm 从用 'index' 标记的数字量寄存器中读取报警状态。关于可用报警状态的更多内容,请参考了解报警状态章节。
注意:自 iFIX 4.5 开始,对于 SM2 驱动程序仅支持 IA_OK 和 IA_COMM 报警状态。
如果操作成功,返回FE_OK。
如果寄存器索引超出范围,返回FE_IO_ADDR。
|
UINT16 SetDigitalAlarm(UINT16 index, INT16 alm);
|
SetDigitalAlarm:写报警状态到用‘index’表示的数字量寄存器,即使数据或报警没有变化,也将产生一个例外。数字量寄存器的所有16位使用相同的报警。关于可用报警状态的更多内容,请参考了解报警状态章节。
注意:自 iFIX 4.5 开始,对于 SM2 驱动程序仅支持 IA_OK 和 IA_COMM 报警状态。
如果操作成功,返回FE_OK。
如果寄存器索引超出范围,返回FE_IO_ADDR。
|
UINT16 GetTextAlarm(UINT16 index INT16 alm)
|
GetTextAlarm 从用 `index' 标记的文本寄存器中读取报警状态。关于可用报警状态的更多内容,请参考了解报警状态章节。
注意:自 iFIX 4.5 开始,对于 SM2 驱动程序仅支持 IA_OK 和 IA_COMM 报警状态。
如果操作成功,返回FE_OK。
如果寄存器索引超出范围,返回FE_IO_ADDR。
|
UINT16 SetTextAlarm(UINT16 index, INT16 alm)
|
SetTextAlarm 向用 'index' 标记的文本寄存器中写入报警状态。当一个块从 SM2 驱动程序中读取数据时,返回第一个字节的报警状态。附加字节的状态被忽略。关于可用报警状态的更多内容,请参考了解报警状态章节。
注意:自 iFIX 4.5 开始,对于 SM2 驱动程序仅支持 IA_OK 和 IA_COMM 报警状态。
如果操作成功,返回FE_OK。
如果寄存器索引超出范围,返回FE_IO_ADDR。
|