组态数据读取失败

 

 这段代码是一个函数 InitCommPortProto,它的作用是初始化通信端口的协议。 函数接收一个 BYTE 类型的参数 bPort,用来指定通信端口。 首先,它创建了一个 CCommIf 类的实例 pLocaCommIf,然后创建了一个 TCommIfPara 类的实例 pLocaCommIfPara。 接着,调用 LoadLocalCommPara 函数加载本地通信参数到 pLocaCommIfPara 对象中,并调用 pLocaCommIf 对象的 Init 函数来初始化通信接口。 然后,根据 bPort 的值进行条件判断。如果 bPort 等于 BOARD_COMM_TEST,则调用 ReadItemEx 函数读取参数值到 bProto 中。 如果 bPort 等于 BOARD_COMM_485,则同样调用 ReadItemEx 函数读取参数值到 bProto 中。 接下来,根据 bProto 的值,通过 switch 语句选择不同的协议。如果 bProto 等于 Proto00_Clou,则创建一个 CFaProto 类的实例,并将其转换为 CProto 类的指针赋给 pProto。 否则,默认情况下创建一个 CCegnCnEmsProto 类的实例,并将其转换为 CProto 类的指针赋给 pProto。 最后,如果 pProto 不为 nullptr,则将通信接口和协议进行绑定,即调用 AttachIf 函数将 pProto 和 pLocaCommIf 绑定,然后调用 AttachProto 函数将 pLocaCommIf 和 pProto 绑定。 最后,调用 pProto 的 Init 函数来初始化协议。 最终,函数返回 pProto。

组态无法收到回复帧且无法读取的原因:

0x2002参数被设置,其具体需要将0x2002重新写为0x00

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值