欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    27用户编程.pdf

    • 资源ID:70322796       资源大小:619.46KB        全文页数:21页
    • 资源格式: PDF        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    27用户编程.pdf

    编程应用 27.用户编程.27-1.27.27.27.27.用户编程用户编程用户编程用户编程?使用使用使用使用 APIAPIAPIAPI 访问系统访问系统访问系统访问系统?在系统附件目录下,有两个分别使用 VC60 和 VB60 编写的访问系统的例子程序,供学习参考,分别为fmAPIVCDemo、fmAPIVBDemo:?在系统目录下提供以下 3 个文件,作为系统的 API 访问库:fmvisiter.h、fmvisiter.lib、fmvisiter.dll;需要把它们拷贝到自己编写的应用程序中;?API 提供了以下接口函数:/1打开与关闭数据库,建议访问多个变量时使用,能明显提高效率;/打开或关闭运行数据库成功返回 1,否则返回 0;/打开数据库失败时,不要访问变量;BOOL OpenRunDB();BOOL CloseRunDB();编程应用 27.用户编程.27-2./2通过变量索引访问变量,建议使用,可提高访问变量速度;/VarType 为变量类型,取值 1-8,对应 AI/AO/AR/DI/DO/DR/VA/VD;/VarName为变量名称,最大长度20个字符;VarIndex为变量索引,VarIndex=0;fValue为变量值;#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*VarIndex);FMVISITER_API BOOL GetVarValue(BYTE VarType,int VarIndex,float*fValue);FMVISITER_API BOOL SetVarValue(BYTE VarType,int VarIndex,float fValue);/3通过变量名称访问变量,建议只在简单慢速访问某变量时使用;FMVISITER_API BOOL GetAIValue(char*VarName,float*retValue);FMVISITER_API BOOL GetAOValue(char*VarName,float*retValue);FMVISITER_API BOOL SetAOValue(char*VarName,float setValue);FMVISITER_API BOOL GetARValue(char*VarName,float*retValue);FMVISITER_API BOOL SetARValue(char*VarName,float setValue);FMVISITER_API BOOL GetDIStatus(char*VarName,BYTE*retStatus);FMVISITER_API BOOL GetDOStatus(char*VarName,BYTE*retStatus);FMVISITER_API BOOL SetDOStatus(char*VarName,BYTE setStatus);FMVISITER_API BOOL GetDRStatus(char*VarName,BYTE*retStatus);FMVISITER_API BOOL SetDRStatus(char*VarName,BYTE setStatus);FMVISITER_API BOOL GetVAValue(char*VarName,float*retValue);FMVISITER_API BOOL SetVAValue(char*VarName,float setValue);FMVISITER_API BOOL GetVDStatus(char*VarName,BYTE*retStatus);FMVISITER_API BOOL SetVDStatus(char*VarName,BYTE setStatus);FMVISITER_API BOOL GetVTText(char*VarName,char*retText);FMVISITER_API BOOL SetVTText(char*VarName,char*setText);/4读写设备数据表/DevNo为设备号,取值1-2000;/StartByte为开始字节单元,取值0-1023;/ByteLength为字节长度,取值1-1024;/pBuffer为设备号数据缓存区;BOOL GetDevTable(int DevNo,int StartByte,int ByteLength,PBYTE pBuffer);BOOL SetDevTable(int DevNo,int StartByte,int ByteLength,PBYTE pBuffer);编程应用 27.用户编程.27-3.?使用 VB 编程时,需要把 API 函数导入到项目中:*打开与关闭运行数据库*Declare Function OpenRunDB Lib fmVisiter.dll()As Long Declare Function CloseRunDB Lib fmVisiter.dll()As Long*通过变量索引访问变量 AI=1、AO=2、AR=3、DI=4、DO=5、DR=6、VA=7、VD=8;*Declare Function GetVarIndex Lib fmVisiter.dll(ByVal VarType As Byte,ByVal VarName As String,varIndex As Long)As Long Declare Function GetVarValue Lib fmVisiter.dll(ByVal VarType As Byte,ByVal varIndex As Long,varValue As Single)As Long Declare Function SetVarValue Lib fmVisiter.dll(ByVal VarType As Byte,ByVal varIndex As Long,ByVal varValue As Single)As Long*通过变量名称访问变量*AI Declare Function GetAIValue Lib fmVisiter.dll(ByVal VarName As String,varValue As Single)As Long AO Declare Function GetAOValue Lib fmVisiter.dll(ByVal VarName As String,varValue As Single)As Long Declare Function SetAOValue Lib fmVisiter.dll(ByVal VarName As String,ByVal varValue As Single)As Long AR Declare Function GetARValue Lib fmVisiter.dll(ByVal VarName As String,varValue As Single)As Long Declare Function SetARValue Lib fmVisiter.dll(ByVal VarName As String,ByVal varValue As Single)As Long DI Declare Function GetDIStatus Lib fmVisiter.dll(ByVal VarName As String,varValue As Byte)As Long DO Declare Function GetDOStatus Lib fmVisiter.dll(ByVal VarName As String,varValue As Byte)As Long Declare Function SetDOStatus Lib fmVisiter.dll(ByVal VarName As String,ByVal varValue 编程应用 27.用户编程.27-4.As Byte)As Long DR Declare Function GetDRStatus Lib fmVisiter.dll(ByVal VarName As String,varValue As Byte)As Long Declare Function SetDRStatus Lib fmVisiter.dll(ByVal VarName As String,ByVal varValue As Byte)As Long VA Declare Function GetVAValue Lib fmVisiter.dll(ByVal VarName As String,varValue As Single)As Long Declare Function SetVAValue Lib fmVisiter.dll(ByVal VarName As String,ByVal varValue As Single)As Long VT Declare Function GetVTText Lib fmVisiter.dll(ByVal VarName As String,ByVal varValue As String)As Long Declare Function SetVTText Lib fmVisiter.dll(ByVal VarName As String,ByVal varValue As String)As Long*访问设备数据表*Declare Function GetDevTable Lib fmVisiter.dll(ByVal Devno As Long,ByVal StartByte As Long,ByVal Bytelen As Long,ByteBuffer As Byte)As Long Declare Function SetDevTable Lib fmVisiter.dll(ByVal Devno As Long,ByVal StartByte As Long,ByVal Bytelen As Long,ByteBuffer As Byte)As Long Declare Function SetDevTablBit Lib fmVisiter.dll(ByVal Devno As Long,ByVal ByteNo As Long,ByVal BitNo As Long,Status As Byte)As Long?以 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;编程应用 27.用户编程.27-5.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 字节单元开始 BYTE Buffer100;GetDevTable(2,0,100,Buffer);?根据变量索引读取 AI.AI1 变量 int VarIndex=-1;float VarValue=0;if(GetVarIndex(1,AI1,&VarValue)=TRUE)GetVarValue(1,VarIndex,&VarValue);?修改多个 VT 变量(VT0001-VT0300):char varName21;char varText100;CString ts;CTime ct=CTime:GetCurrentTime();for(int i=1;i=300;i+)memset(varName,0,21);ts.Format(VT%.4i,i);memcpy(varName,ts,ts.GetLength();ts=ct.Format(%Y-%m-%d%H:%M:%S);memset(varText,0,100);memcpy(varText,ts,ts.GetLength();SetVTText(varName,varText);编程应用 27.用户编程.27-6.?访问多个变量(如 VA.VA0001-VA10000),建议打开运行数据库,并通过索引访问;/定义变量索引数组 int varIndex10000;/得到变量索引,首次得到索引耗时较多,获得 1 万个变量索引大概需要 3 秒左右;CString ts;char ch21;if(OpenRunDB()=TRUE)for(int i=0;i10000;i+)ts.Format(VA%.4i,i+1);memset(ch,0,21);memcpy(ch,ts,ts.GetLength();if(GetVarIndex(VA,ch,&varIndexi)=FALSE)varIndexi=-1;CloseRunDB();/访问变量,访问 1 万个变量,大概需要 1 秒左右;if(OpenRunDB()=TRUE)float fValue=0;for(int i=0;i=0)GetVarValue(VA,varIndexi,&fValue);fValue+;SetVarValue(VA,varIndexi,fValue);CloseRunDB();?访问设备数据表:if(OpenRunDB()=TRUE)BYTE Buffer100;if(GetDevTable(2,0,100,Buffer)=TRUE)if(SetDevTable(2,0,100,Buffer)=TRUE)CloseRunDB();编程应用 27.用户编程.27-7.?以 VB 为例:?访问设备数据表:Dim Buffer(1000)As Byte Dim ret As Long ret=OpenRunDB()If ret=1 Then ret=GetDevTable(1,0,1000,Buffer(0)Buffer(0)=Buffer(0)+1 SetDevTable 1,0,1000,Buffer(0)ret=CloseRunDB()End If?通过索引号访问变量:Dim ret As Long ret=OpenRunDB()If ret=1 Then Dim varIndex As Long ret=GetVarIndex(7,%VA1,varIndex)If varIndex=0 Then Dim varValue As Single ret=GetVarValue(7,varIndex,varValue)varValue=varValue+1 ret=SetVarValue(7,varIndex,varValue)Text2.Text=varValue End If ret=CloseRunDB()End If?通过名称直接访问变量:Dim Value As Single Dim ret As Long ret=GetVAValue(%VA1,Value)Value=Value+1 ret=SetVAValue(%VA1,Value)编程应用 27.用户编程.27-8.?使用使用使用使用 COMCOMCOMCOM 组件访问组件访问组件访问组件访问本地本地本地本地系统系统系统系统?系统提供了 COM 组件可访问本地变量,名称为fmDMO.RunDb,对应文件 fmDMO.dll,提供以下方法:?打开运行数据库:VARIANT Open();/打开成功返回 1,否则返回 0;?关闭运行数据库:Close();/使用完毕,必须关闭运行数据库;?得到变量类型和名称得到变量索引号:VARIANT GetVarIndex(VarType,VarName)VarType 为变量类型,1=AI,2=AO,3=AR,4=DI,5=DO,6=DR,7=VA,8=VD,9=VT;VarName 为变量名称;返回值为 VT_I4 类型的索引编号,通过此编号来访问变量;?通过变量类型和索引得到变量值:VARIANT GetVarValue(VarType,VarIndex)VarType 为变量类型,1=AI,2=AO,3=AR,4=DI,5=DO,6=DR,7=VA,8=VD,9=VT;VarIndex 为通过 GetVarIndex 得到的变量索引;AI/AO/AR/DI/DO/DR/VA/VD 返回 VT_R4 类型的浮点数,VT 返回 VT_BSTR 类型的字符串;?通过变量类型和索引修改变量值:SetVarValue VarType,VarIndex,VarValue VarType 为变量类型,1=AI,2=AO,3=AR,4=DI,5=DO,6=DR,7=VA,8=VD,9=VT;VarIndex 为通过 GetVarIndex 得到的变量索引;AI/AO/AR/DI/DO/DR/VA/VD 使用 VT_R4 类型的浮点数,VT 使用 VT_BSTR 类型的字符串;?通过变量名称直接得到变量值,访问速度速度稍慢:VARIANT GetVarValueEx(VarName)VarName 格式为 XX.YYYYYYY,XX 为 AI/AO/AR/DI/DO/DR/VA/VD/VT,YYYYYY 为变量名称;AI/AO/AR/DI/DO/DR/VA/VD 返回 VT_R4 类型的浮点数,VT 返回 VT_BSTR 类型的字符串;?通过变量名称直接修改变量值,访问速度速度稍慢:SetVarValueEx VarName,VarValue VarName 格式为 XX.YYYYYYY,XX 为 AI/AO/AR/DI/DO/DR/VA/VD/VT,YYYYYY 为变量名称;AI/AO/AR/DI/DO/DR/VA/VD 使用 VT_R4 类型的浮点数,VT 使用 VT_BSTR 类型的字符串;?得到设备表数据:GetDevTable DevNo,StartByte,ByteLength,Buffer DevNo 为某设备号代码(1-2000),StartByte 为开始字节单元号(0-1023),ByteLenth 为要读取得字节长度(1-1024),Buffer 为字节数组,存放返回的设备号数据;?修改设备表数据:SetDevTable DevNo,StartByte,ByteLength,Buffer DevNo 为某设备号代码(1-2000),StartByte 为开始字节单元号(0-1023),ByteLenth 为要读取得字节长度(1-1024),Buffer 为字节数组,存放要修改数据;编程应用 27.用户编程.27-9.?例子 1(使用 VBScript 得到并修改 VA 变量 VA1);Set obj=CreateObject(fmDMO.Rundb)If obj.Open()=1 Then n=obj.GetVarIndex(7,VA1)x=obj.GetVarValue(7,n)x=x+1 obj.SetVarValue 7,n,x obj.Close End If Set obj=Nothing?例子 2(使用 VBScript 得到并修改 VT 变量 VT1);Set obj=CreateObject(fmDMO.Rundb)If obj.Open()=1 Then n=obj.GetVarIndex(9,VT1)s=obj.GetVarValue(9,n)s=s&abcd obj.SetVarValue 9,n,s obj.Close End If Set obj=Nothing?例子 3(使用 VC+得到并修改 VA 变量 VA1):?在函数 InitInstance()中必须加入:if(!AfxOleInit()return FALSE;?在 stdafx.h 中加入:#import c:fameviewfmDmo.dll no_namespace named_guids?使用以下方法访问变量:IRundbPtr pRundbObj;HRESULT hr=pRundbObj.CreateInstance(fmDMO.Rundb);if(hr!=0)return;_variant_t vt=pRundbObj-Open();if(vt.iVal!=1)return;_variant_t varType;varType.vt=VT_UI1;varType.bVal=7;_bstr_t varName=%VA1;_variant_t varIndex=pRundbObj-GetVarIndex(varType,varName);if(varIndex.lVal=0)_variant_t varValue=pRundbObj-GetVarValue(varType,varIndex);编程应用 27.用户编程.27-10.varValue.fltVal+=1;pRundbObj-SetVarValue(varType,varIndex,varValue);pRundbObj-Close();?例子 4(使用 VB 得到并修改 VA 变量 VA1)Dim obj As Object Set obj=CreateObject(fmDMO.Rundb)If obj.Open()=1 Then Dim n As Long n=obj.GetVarIndex(7,%VA1)Dim x As Single x=obj.GetVarValue(7,n)x=x+1 obj.SetVarValue 7,n,x obj.Close End If Set obj=Nothing?例子5(使用VBScript得到并修改VA变量VA1);Set obj=CreateObject(fmDMO.Rundb)If obj.Open()=1 Then x=obj.GetVarValueEx(“VA.VA1”)x=x+1 obj.SetVarValueEx“VA.VA1”,x obj.Close End If Set obj=Nothing?例子 6(使用 VB 访问设备数据表):Dim Buffer(1000)Set obj=CreateObject(fmDMO.Rundb)If obj.Open()=1 Then obj.GetDevTable 1,0,10,Buffer obj.SetDevTable 1,0,10,Buffer obj.Close End If Set obj=Nothing 编程应用 27.用户编程.27-11.?使用使用使用使用 COMCOMCOMCOM 组件访问远程系统组件访问远程系统组件访问远程系统组件访问远程系统?系统提供了 COM 组件,在脚本语言中简单的通过组件访问远程运行数据库;?组件名称为fmDMO.TCPRunDb,对应文件是 fmDMO.dll,提供了以下方法:?设置本地网卡 IP:SetLocalIp localIp;如果不调用此函数,则使用缺省的 IP 地址;?打开远程运行数据库:VARIANT Open(srvIp,srvPort,tm);参数分别为远程 IP、端口号、超时时间;打开成功返回 1,否则返回 0;?关闭运行数据库:Close();使用完毕,必须关闭运行数据库;?得到某变量的索引编号:VARIANT GetVarIndex(VarType,VarName)VarType 为变量类型,1=AI,2=AO,3=AR,4=DI,5=DO,6=DR,7=VA,8=VD,9=VT;VarName 为变量名称;返回值为 VT_I4 类型的索引编号,通过此编号来访问变量;?VARIANT GetVarValue(VarType,VarIndex)VarType 为变量类型,1=AI,2=AO,3=AR,4=DI,5=DO,6=DR,7=VA,8=VD,9=VT;VarIndex 为通过 GetVarIndex 得到的变量索引;AI/AO/AR/DI/DO/DR/VA/VD 返回 VT_R4 类型的浮点数,VT 返回 VT_BSTR 类型的字符串;?SetVarValue VarType,VarIndex,VarValue VarType 为变量类型,1=AI,2=AO,3=AR,4=DI,5=DO,6=DR,7=VA,8=VD,9=VT;VarIndex 为通过 GetVarIndex 得到的变量索引;AI/AO/AR/DI/DO/DR/VA/VD 使用 VT_R4 类型的浮点数,VT 使用 VT_BSTR 类型的字符串;?例子 1:使用 VbScript 得到并修改 VA 变量 VA1;Dim obj Set obj=CreateObject(fmDMO.TCPRundb)If obj.Open(192.168.1.100,5002,1000)=1 Then n=obj.GetVarIndex(7,%VA1)x=obj.GetVarValue(7,n)x=x+1 obj.SetVarValue 7,n,x obj.Close End If Set obj=Nothing 编程应用 27.用户编程.27-12.?例子 2:使用 VBScript 得到并修改 VT 变量 VT1;Dim obj Set obj=CreateObject(fmDMO.TCPRundb)If obj.Open(192.168.1.100,5002,1000)=1 Then n=obj.GetVarIndex(9,%VT1)s=obj.GetVarValue(9,n)s=s&abcd obj.SetVarValue 9,n,s obj.Close End If Set obj=Nothing?例子 3:使用 VB 得到并修改 VA 变量%VA1;Dim obj As Object Set obj=CreateObject(fmDMO.TCPRundb)If obj.Open(192.168.1.206,5002,1000)=1 Then Dim n As Long Dim x As Single n=obj.GetVarIndex(7,%VA1)x=obj.GetVarValue(7,n)x=x+1 obj.SetVarValue 7,n,x obj.Close End If Set obj=Nothing 编程应用 27.用户编程.27-13.?通过命令行方式操作组态系统通过命令行方式操作组态系统通过命令行方式操作组态系统通过命令行方式操作组态系统?系统提供了fmSrvPort.exe程序作为接口,赋予命令参数执行相应操作;?例如:?支持以下参数:编号 参数 操作 1 Startup_FameView 以默认方式启动监控系统 2 Startup_FameView_Hide 以隐藏方式启动监控系统 3 Startup_FameView_NoDemoWnd 以无演示窗口方式启动监控系统 4 Exit_FameView 退出监控系统 5 New_Project 新建项目 6 Load_Project_xxxxxx 调入项目,xxxxxx为项目名称 7 Backup_Project_xxxxxx 备份项目,xxxxxx为项目名称 8 Install_DevDriver 安装驱动程序 9 Delete_DevDriver 删除驱动程序 10 Startup_DevDriver 启动驱动程序 11 Edit_DevTable 编辑设备数据表 12 Open_DevTable 监视设备数据表 13 OPEN_COMMDRV_XXXXXX 监视驱动程序,XXXXXX为驱动程序名称 14 EDITVAR_XX 编辑运行数据库,XX为AI/AO/AR/DI/DO/DR/VA/VD/VT 15 Open_RunDB 监视运行数据库 16 Open_CFGMGR 启动组态管理器 17 OPEN_SCRKEY 打开屏幕键盘 18 OPEN_DBLINK 监视数据库连接 19 OPEN_DATETIME 打开时间修改窗口 20 OPEN_ODBCCFG 打开ODBC配置窗口 21 OPEN_NETLINK 打开网络连接窗口 22 OPEN_RUNTASK 显示程序运行窗口 23 CLOSE_CTRL+ALT+DEL 屏蔽CTRL+ALT+DEL 24 OPEN_CTRL+ALT+DEL 开放CTRL+ALT+DEL 25 EXIT_WINDOWS 关闭Windows 26 LOGOFF_WINDOWS 在启动组态的情况下注销Windows 编程应用 27.用户编程.27-14.27 REBOOT_WINDOWS 在启动组态的情况下重启Windows 28 LOCK_WINDOWS 锁定Windows 29 SHOW_DESKTOP 显示桌面 30 HIDE_DESKTOP 隐藏桌面 31 DISABLE_TASKKEY 屏蔽任务键 32 ENABLE_TASKKEY 使能任务键 33 TERMI_PROCESS_ 强制终止程序 34 SCREENSAVE 进入屏幕保护 35 OPEN_网络服务器 监视网络服务器 36 OPEN_ADSL服务器 监视ADSL服务器 37 OPEN_远程连接服务器 监视远程连接服务器 38 Define_VarFile 定义变量文件 39 EDIT_WEBDBTABLE 编辑Web数据库表格查询方案 40 EDIT_WEBDBCURVE 编辑Web数据库曲线查询方案 41 OPEN_WEBSERVER 监视Web服务器 42 SET_WEBSERVER 设置Web服务器?在 VC 中执行 fmSrvPort.exe 文件:CString fn=c:fameviewfmSrvPort.exe Startup_FameView;:WinExec(fn,SW_SHOW);编程应用 27.用户编程.27-15.?串口驱动模板串口驱动模板串口驱动模板串口驱动模板?系统安装目录下的子目录下,提供了驱动模板;?通过串口驱动模板,高级用户可以自行开发串口驱动程序;?把驱动模板解压并拷贝到相应目录:?把模板的目录改为驱动程序的名称,如TEST;?把其中的子目录串口驱动也修改为新的驱动名称TEST:?打开 TEST 目录,其中包含 1 个驱动名称.ini文件:编程应用 27.用户编程.27-16.?把驱动名称.ini文件修改为TEST.ini:?打开 TEST.ini 文件,设置驱动的内容并保存:参数 描述 举例 设备驱动 DrvName 驱动程序名称 TEST DrvDesc 驱动程序描述 测试驱动程序 DrvFileName 驱动程序对应的可执行程序文件名称 TEST.exe 数据类型 共支持 24 种数据类型,不使用的数据类型不需要定义;DataType1 驱动程序支持的第 1 种数据类型 AI-模拟量输入 DataType2 驱动程序支持的第 2 种数据类型 DI-开关量输入 DataType24 驱动程序支持的第 24 种数据类型 数据格式 某数据类型支持的数据格式:1=BYTE+WORD+DWORD,2=WORD,4=DWORD,5=WORD+DWORD,6=BYTE,0=不使用 DataType1_fmt 第 1 种数据类型的数据格式 4 DataType2_fmt 第 2 种数据类型的数据格式 1 DataType24_fmt 第 24 种数据类型的数据格式 0 访问方式 某数据类型支持的访问方式:1=RW+R,2=R,3=W,4=RW+R+W AccessMode1 第 1 种数据类型支持的访问方式 2 AccessMode2 第 2 种数据类型支持的访问方式 2 AccessMode24 第 24 种数据类型支持的访问方式 0 通讯参数 定义设备号时,驱动程序的参数描述 S1Desc 第 1 个参数描述 m_PlcNo 站号 S2Desc 第 2 个参数描述,串口驱动不使用 m_ConnectName 编程应用 27.用户编程.27-17.S3Desc 第 3 个参数描述,串口驱动不使用 m_VFDName S4Desc 第 4 个参数描述,串口驱动不使用 m_DevName S5Desc 第 5 个参数描述 m_ScanClass 扫描级别:S6Desc 第 6 个参数描述 m_DataType 数据类型:S7Desc 第 7 个参数描述 m_AccessMode 访问方式:S8Desc 第 8 个参数描述 m_DataFormat 数据格式:S9Desc 第 9 个参数描述,数据辅助参数 m_AreaNo 数据块号:S10Desc 第 10 个参数描述 m_DataStart 开始地址:S11Desc 第 11 个参数描述 m_DataLen 数据长度:S12Desc 第 12 个参数描述,串口确省参数 COM:009600,8,1,N 各参数对应的确省值 S1Value 第 1 个参数确省值 1 S2Value 第 2 个参数确省值 S3Value 第 3 个参数确省值 S4Value 第 4 个参数确省值 S5Value 第 5 个参数确省值 S6Value 第 6 个参数确省值 S7Value 第 7 个参数确省值 S8Value 第 8 个参数确省值 S9Value 第 9 个参数确省值 S10Value 第 10 个参数确省值 0 S11Value 第 11 个参数确省值 10?用 VC+V6.0 打开驱动模板项目(DrvTool.dsw):?打开 DrvTool.h 文件,在代码中设置驱动程序的名称TEST:#define DRV_NAME TEST 编程应用 27.用户编程.27-18.?执行菜单 Project 下的 Settings 命令,设置驱动程序编译后的路径和文件名称:?打开文件 DrvToolDlg.cpp 文件,进行代码编写;?大多数代码不需要修改,主要修改7.8.6和7.9.5部分,分别进行读取和写入操作;?把 TEST.ini 文件和最后生成的 exe 文件,拷贝到组态软件目录下,进行安装并调试运行;编程应用 27.用户编程.27-19.?在画面中使用第三方控件在画面中使用第三方控件在画面中使用第三方控件在画面中使用第三方控件(ActiveXActiveXActiveXActiveX)?组态软件在画面中提供了组件,可以支持第三方提供的 ActiveX 控件;?首先必须注册控件,可以通过组态软件实用工具下的控件注册实现;?然后需要得到控件名称(ProgID),可通过组态软件根目录下的 RegDllView.exe

    注意事项

    本文(27用户编程.pdf)为本站会员(asd****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开