恭喜,你发布的帖子
发布于 2025-09-30 09:35:56
8楼
程序没有问题。功能主要是将接口区取到的 variant类型的数据,
S 1.判断一下当前实际类型(INT/WORD/REAL/DINT/LREAL...等等)中的一个,
S 2.分别进行下一步转化处理(使用case语句)。
用variant是为了外部接口数据的多种类的覆盖,随便一个类型的数字(程序中好像11种)都可以被处理。
建议:case的最后最好有默认项,即不是这11中数据,就按出错处理。(将
IF ENO = FALSE THEN
#FaultCode := 02; //str too short OR Size too small
这段改成默认项,不要使用ENO判断)
楼上说的问题不存在,VAL_STRG(IN := #Value_UInt,。。。 中的IN,在程序接口调用中,估计就是使用的TEMP区。虽然无法看到源程序,但是这么做是常规行为。
首先,谢谢你的留言,能在此讨论问题。我下文也仅仅是讨论技术问题。
1,CASE语句的确有默认项。如果data不是值类型,那么会给出错误代码01
2,判断ENO的目的是看是否可以把数字无错误的转换为字符串。如果没有,说明string类型的长度短了。
以上是我的说明。再次谢谢你。
请填写推广理由:
分享
只看
楼主