组态王驱动程序用户手册内容摘要:
传递给驱动, ConvertUserConfigToVar 将结果返回在组态王建立的变量 PLCVAR中。 具体解释见 ConvertUserConfigToVar。 串口设备测试 若用户使用的设备是串口设备,可以方便的使用 串口设备测试工具 进行测试 .用户进入测试设备对话框,如下图所示: 当用户进入此对话框时,组态王立刻调用 GetRegisters 获取设备可以使用的寄存器列表。 当用户点击添加或者加入变量时,组态王立刻调用 ConvertUserConfigToVar进行变量校验。 当用户点击读取,组态王就开始变量采集。 所有采集步骤与运行环境一致,只是这儿测试只是测试一个设备 ,而运行环境采集定义的所有的设备。 . 运行环境 以下步骤为特殊目的时,组态王对于每个设备都会调用一次此函数。 校验设备地址 调用 StrToDevAddr,对用户输入的地址字符串进行转换 .若 StrToDevAddr 返回 TRUE,转 . 否则组态王提示用户地址格式不对,同时中止此设备的采集,不影响使用同一驱动的其他设备。 打开设备 调用 OpenComDevice,若是串口设备 ,则驱动应在此中进行串口初始化 .若不是串口驱动 ,驱动可以在此中完成一次性的初始化工作。 若 OpenComDevice 返回 TRUE,组态王会在信息窗口提示打开设备成功,并给出成功的设备名称,同时转。 否则组态王会在信息窗口提示打开设备失败,认为设备存在问题,若是串口设备,此串口下连接的所有设备都不能通信, 若是其他类型设备,则此种设备全部不能通信。 OpenComDevice的参数由用户配置。 设备初始化 调用 InitialDevice,对设备进行初始化 .若 InitialDevice 返回 TRUE,转 组态王在信息提示用户设备初始化失败,同时中止此设备的采集,不影响使用同一驱动的其他设备。 变量校验 调用 ConvertUserConfigToVar对所有变量进行 变量校验。 若一个设备使用的所有变量都成功,转。 若某一个设备中有一个变量校验失败,则组态王会在信息窗口提示变量校验无效,同时组态王会中止此设备的采集。 变量打包 调用 AddVarToPacket对变量进行打包处理 .对于属于同一驱动的所有变量进行打包处理,当所有变量打包完成,。 设备通信 调用 ProcessPacket2进行设备通信 ,若返回 TRUE,则释放 PACKET,同时进行下一个 PACKET 处理 .当按照刷新频率全部处理完毕,转 重新打包通信 .若返回 FALSE,则转。 尝试恢复设备通信 调用 TryConnect进行设备尝试恢复 ,若返回 TRUE,则返回 进行正常通信处理。 若返回失败组态王会再 次调用 TryConnect,若仍然返回 FALSE,组态王认为设备失败,会中止设备采集一段时间,在定义设备时设置。 关闭设备 调用 CloseComDevice 关闭设备 ,若 CloseComDevice 返回 FALSE 或者迟迟不能完成关闭设备动作,将大大影响组态王的退出速度,甚至可能阻止组态王退出。 8 程序结构 程序包含如下几个 主要的类 : 驱动工程类 (Cpro): 实现 2 个接口 : IprotocolImp 和 IprotocolImp2。 设备类 (CDev): 实现 COM 接口 , 包括 2个类 ,设备基类和设备子类。 通讯类 (CCom): 实现串口 ,网卡等的通讯 ,开发包向导会根据您的设置 ,自动地产生串口通讯类 (CSerialCom) 或者网络通讯类 (CNetCom), 您也可以根据需要添加 USB通讯类 (CUSBCom)。 调试信息类 (CDebug): 该类实现各种 调试信息在组态王信息窗口中的输出 ,比如 错误信息,接口信息,数据信息 等。 帮助函数 (CHelper): 提供了一系列 您在开发驱动过程中可能会用到的功能函数。 数据桢校验类 (CCheck): 提供了在开发中会遇到的各 种校验函数,包括和 校验、异或校验、循环冗余校验 等。 类的调用与继承关系,如下图: 驱动工程类 (CPro) 该类实现 2个接口 : IprotocolImp 和 IprotocolImp2。 关于接口函数目的,见“ ” 节。 设备类 (CDev) 实现 COM接口,包含 2个类,设备基类 (CDevBase)和设备子类 (CDev)。 类 CDevBase 是所有设备子类的父类。 属性 : m_szDevKind:设备类型 . m_pSerialCom:串口通讯类指针 m_pCheck:校验 类指针 m_pPro:工程类指针 操作 : GetRegisters BOOL CDev::GetRegisters( LPVOID *ppReg, int *pRegNum ) 类型 Public 目的 得到 由 szDeviceName 确定的寄存器的名字和个数。 返回值 成功返回 TRUE,否则返回 FALSE。 参数 ppReg [out] 返回寄存器信息的指针数组的指针。 pRegNum [out] 返回寄存器的个数。 GetDevices BOOL CDev::GetDevices(LPVOID *ppDevice, int *pDeviceNum) 类型 :Public 目的 :得到设备的名字和个数。 返回值 :成功返回 TRUE,否则返回 FALSE。 参数 :ppDevice [out] 返回设备列表信息的指针。 pDeviceNum:[out] 返回设备的个数。 ConvertUserConfigToVar WORD CDev::ConvertUserConfigToVar( LPVOID lpDbItemItem, LPVOID lpVar) 类型 :Public 目的 :将用户的配置字符串转换为组态王变量结构 返回值 :WORD:如果转换成功则返回 0,否则返回非零的错误代码。 参数 lpDbItem:[in] 指向结构 MiniDbItem 的指针。 lpVar:[in,out] 指向结构 PLCVAR 的指针 ,返回变量就存放在这里。 AddVarToPacket BOOL CDev::AddVarToPacket( LPVOID lpVar, int nVarAccessType, LPVOID lpPacket) 类型 Public 目的 确认变量是否能够与一个包里的其他变量一起进行采集,以进行变量的打包 , 如果可以加入 ,返回 TRUE 并修改包的起止地址。 否则返回 FALSE。 返回值 BOOL: FALSE 表示不能打包,否则能。 参数 lpVar [in] 变量指针 nVarAccessType [in] 读写方式 lpPacket [int] 包指针 ProcessPacket2 BOOL CDev::ProcessPacket2( LPVOID lpPacket ) 类型 Public 目的 根据协议及包状态信息进行相应的处理 ,例如进行读写处理,如果读成功则把数据写入 pPacvarList。 (在新 接口中调用)。 返回值 BOOL:如果成功,返回 TRUE,否则,返回 FALSE。 参数 lpPacket [in,out] 包指针。 TryConnect BOOL CDev::TryConnect ( const TCHAR* szDeviceName, int iUnitAddr, LPVOID lpDevAddr ) 类型 Public 目的 与地址为 UnitAddr 的设备尝试进行通讯 ,用于故障侦探及恢复尝试。 返回值 尝试通讯成功返回 TRUE,否则返回 FALSE。 参数 pDeviceName [in] 设备的唯一名字。 nUnitAddr [in] 需要进行故障侦探及恢复尝试的设备的地址。 lpDevAddr [in] 应将此参数转换为结构 PDEVADDR。 此结构详情参阅 文件。 备注 当 ProcessPacket 失败后 , TryConnect将被组态王调用 2次,如果仍然失败,则该接口将按设定的尝试连接间隔被组态王调用。 StrToDevAddr BOOL CDevBase::StrToDevAddr(const TCHAR* str, LPVOID lpDevAddr) 类型 :Public 目的 :实现 对地址输入的整理,判断用户输入的地址是否合法,并将地址的数值传给组态王 , 如果必要,也可以将地址以字符串的形式传给组态王。 返回值 :成功返回 TRUE,否则返回 FALSE。 参数 str [in] 用户输入的地址字符串。 lpDevAddr [in,out] 用于保存地址信息的结构。 SetProPtr void CDevBase::SetProPtr(CProject16Pro* pPro) 类型 Public 目的 设置工程类的指针。 返回值 Null 参数 pPro [in] 工程类的指针。 GetSendTimes int CDevName1::GetSendTimes(PPACKET pPac) 类型 Public 目的 获取与设备一次交互的次数。 返回值 一个整型数据。 参数 pPac [in,out] 包指针 GetSendString BOOL CDev::GetSendString(PPACKET pPac,intamp。 iLen, intamp。 iRecLen, int iTimes) 类型 Public 目的 根据协议组合成发送桢。 返回值 成功返回 TRUE,否则返回 FALSE。 参数 pPac [in,out] 指向 PACKET 结构的指针。 iLen [out] 发送数据的长度。 iRecLen [out] 需要接收的数据的长度。 iTimes [in] 在一次发送过程中调用的次序。 Transmission BOOL CDev::Transmission (int iLen, int iExpectedLen, intamp。 iRecLen) 类型 Public 目的 通讯处理函数。 返回值 成功返回 TRUE,否则返回 FALSE。 参数 iLen [in] 数据的长度 iExpectedLen [in,out] 期望接收到数据的长度。 iRecLen [in,out] 实际接收到数据的长度。 GetFirstFrame BOOL CDev::GetFirstFrame (int nbyteRead, int nExpectedLen, BYTE chFrameHead) 类型 Public 目的 获取第一个正确的数据桢。 返回值 成功返回 TURE,否则 ,返回 FALSE。 参数 nbyteRead [in] 实际接收到的数据的长度。 iExpectedLen [in] 期望接收到的数据的长度。 chFrameHead [in] 第一个正确数据桢的位置。 PreProcessData BOOL CDev::PreProcessData (PPACKET pPac, int nbyteRead ,int nExpectedLen, int iTimes) 类型 Public 目的 检查接收的数据。 返回值 成功返回 TURE,否则 ,返回 FALSE。 参数 pPac [in,out] 包指针。 nbyteRead [in] 实际接收到的数据长度。 iExpectedLen [in] 期望接收到的数据长度。 SendDataToKingView BOOL CDev::SendDataToKingView(PPACKET pPac, int iLen) 类型 Public 目的 向组态王传送数据。 返回值 成功返回 TRUE,否则 ,返回 FALSE。 参数 pPac [in,out] 包指针。 iLen [Out] 接收到的数据长度。 通讯类 (CCom) 实现串口 ,网卡等的通讯 ,开发包向导会根据您的设置 ,自动地产生 串口通讯类 (CSer。组态王驱动程序用户手册
相关推荐
可以决定接受还是不接受你们的那一票。 他如果接受了这一票 《红黑游戏》教练训练手册《红黑游戏》教练训练手册 1《《《《红黑游戏红黑游戏红黑游戏红黑游戏》》》》教练训练手册教练训练手册教练训练手册教练训练手册 现在我们来玩一个游戏。 是游戏,就一定有规则,有体验,有吸引力,结果有输有赢。
聚酰胺环氧氯丙烷、阳离子表面施胶剂项目 “三查四定”问题统计表 序号 存在问题 问题类型 施工负责人 备注 完工时间 1 锅炉排污阀内漏 质量隐患 杨洪军 已完成 2 锅炉烟筒太低 环保要求 杨洪军
录一、编制依据二、工程概况三、施工准备四、工期、质量及安全目标五、人员及机械进场计划六、施工工艺七、工程质量保证措施八、安全保证措施九 、应急保证措施 管道疏通维修工程施工组织设计一、施工准晓却峦症恭均 清妖宁续描顶部补牛盒喊金袱藕伟叭女庐晓女乒校阎淡楞碌序巳俊瓮劣毒玩镊姻抡矛铡窘拜尤谣屉冗陇侮甫耍诚华贝盒滚提脏波赚皮 ( 7)清淤 下水管道疏通方案 1目 录一、编制依据二、工程概况三
动,写一篇学习胡锦涛总书记“七一”讲话精神心 得 体会 , 到村作一次“七一”讲话精神宣讲 , 进行一次组工干部演讲比赛,深 3 刻领会胡锦涛总书记“七一”讲话精神实质 , 每 月 撰写一篇组工信息 , 要求每名组工干部每 月 精心撰写 至少 一篇高质量组工信息,锻炼和提高自身写作水平 , 每 两月 组织一次 支部 活动。 利用业余时间,统一组织 户外活动、体育运动 和拓展训练等活动
A 迎面风速控制在 ,且风速均匀度必须大于 80%,当迎面风速高于 ,必须考虑防止漂水措施,出风侧设置挡水板。 (提供相应机组的外形尺寸,面风速)。 D 盘 管之冷凝水接水盘须由 毫米以上不锈钢板一次冲压成型,且底部应设计成一定的倾角,排水孔应设在凝水盘的最低点,以易于冷凝水汇集和排出。 并在水盘外层贴整张保温材料以防止冷凝现象。 保温材料必须满 足防火要求。 F 流经盘管的水压降不应超过
较 多,有用石灰或碱的化学沉淀法、氯化还原法 、离子交换法、超滤 等,这些方法各有利弊和局限性。 出于经济上原因, 现主要采用的是化学沉淀法进行处理。 废水由车间排出后进入综合废水调节池,与其它经预处理后的废水废液混合,调节均匀后由水泵打入 pH 调节池,在 pH 调节池内进行 pH 调节, PH 值控制在 10 左右,使 Cu2+及其它重金属离子形成不溶于水的重金属盐;再加入混凝剂