杰控组态手册28.用户编程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
28.用户编程
使用API编写程序
在系统目录下存在以下三个文件,作为系统的API访问库:
fmvisiter.h、fmvisiter.lib、fmvisiter.dll;
需要把它们拷贝到你的应用程序中;
API提供了以下库函数:
//读AI变量
FMVISITER_API BOOL GetAIValue(char* VarName,float* retValue);
//读写AO变量
FMVISITER_API BOOL GetAOValue(char* VarName,float* retValue);
FMVISITER_API BOOL SetAOValue(char* VarName,float setValue);
//读写AR变量
FMVISITER_API BOOL GetARValue(char* VarName,float* retValue);
FMVISITER_API BOOL SetARValue(char* VarName,float setValue);
//读DI变量
FMVISITER_API BOOL GetDIStatus(char* VarName,BYTE* retStatus);
//读写DO变量
FMVISITER_API BOOL GetDOStatus(char* VarName,BYTE* retStatus);
FMVISITER_API BOOL SetDOStatus(char* VarName,BYTE setStatus);
//读写DR变量
FMVISITER_API BOOL GetDRStatus(char* VarName,BYTE* retStatus);
FMVISITER_API BOOL SetDRStatus(char* VarName,BYTE setStatus);
//读写VA变量
FMVISITER_API BOOL GetVAValue(char* VarName,float* retValue);
FMVISITER_API BOOL SetVAValue(char* VarName,float setValue);
//读写VD变量
FMVISITER_API BOOL GetVDStatus(char* VarName,BYTE* retStatus);
FMVISITER_API BOOL SetVDStatus(char* VarName,BYTE setStatus);
//读写VT变量
FMVISITER_API BOOL GetVTText(char* VarName,char* retText);
FMVISITER_API BOOL SetVTText(char* VarName,char* setText);
//读写设备数据表
BOOL GetDevTable(int DevNo,int StartByte,int ByteLength,PBYTE retBuffer);
BOOL SetDevTable(int DevNo,int StartByte,int ByteLength,PBYTE setBuffer);
//通过变量索引访问变量
#define AI 1
#define AO 2
#define AR 3
#define DI 4
#define DO 5
#define DR 6
#define VA 7
#define VD 8
FMVISITER_API BOOL GetVarIndex(BYTE VarType,char* VarName,int* retValue); FMVISITER_API BOOL GetVarValue(BYTE VarType,int VarIndex,float* retValue); FMVISITER_API BOOL SetVarValue(BYTE VarType,int VarIndex,float setValue);
以VC++为例:
把文件fmvisiter.h、fmvisiter.lib拷贝到项目目录下,并加入到项目中:
使fmvisiter.dll文件与编译后的可执行文件在同一目录下;
//读取AI.VAR1变量
float fValue=0;
BOOL bValue=GetAIVarValue("VAR1",&fValue);
CString s;
if(bValue==TRUE) s.Format("读取变量成功!VAR1=%.2f",fValue);
else s="读取变量失败!";
//读取DI.VAR1变量
BYTE byteValue=0;
BOOL bValue=GetDIVarValue("VAR1",&byteValue);
CString s;
if(bValue==TRUE) s.Format("读取变量成功!VAR1=%i",byteValue);
else s="读取变量失败!";
//修改AR.VAR1变量=123.45
BOOL bValue=SetARVarValue("VAR1",123.45);
CString s;
if(bValue==TRUE) s.Format="修改变量成功! ";
else s="读取变量失败!";
//修改DR.VAR1变量=1
BOOL bValue=SetDRVarValue("VAR1",1);
CString s;
if(bValue==TRUE) s.Format="修改变量成功! ";
else s="读取变量失败!";
//从设备表D2中读取100个字节数据,从0字节单元开始