回复:Variant指针

贾岑

西门子1847工业学习平台

  • 帖子

    826
  • 精华

    2
  • 被关注

    20

论坛等级:侠圣

注册时间:2006-04-28

普通 普通 如何晋级?

发布于 2021-01-19 12:06:20

11楼

展开查看
以下是引用kenn在2021-01-18 20:25:59的发言 >10楼

 本是想使用variant来定义形参的,但我的目的是做一个通用的模拟量模块的批处理的FC,配置实参时需根据模拟量模块的输入输出通道数配置形参的数组元素数量,这样就涉及到限值可变数组,但零时变量不支持限值可变数组,没有想到更好的办法。这个可能还需要版主赐教。

您的需求就是要做一个通用的模拟量通道参数配置,直接封装成UDT即可。因为这个结构本身是不会变的,只是不同的项目模拟量的数量不同,所以仅长度是会变的,故而形参做成array[*]是最方便的,直接通过指令读出实参的长度即可。

如果要定义成variant,那么您就要在FC的临时变量中去声明一个相同的UDT,而不是array[*]了,然后通过CountOfElements读取实际的数组内元素长度,再通过MOVE_BLK_VARIANT指令循环将元素值读进来操作。

variant的优势在于如果实参连接的数组元素类型有区别,那么用varaint可以解析不同的数组元素。而您现在的需求是数组内的元素都是相同的,其实用array[*]反而会更方便。

但行好事 莫问前程
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

PLC编程精英训练营

共有1553条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。