回忆起以前项目中上位机和HMI中使用画面弹窗功能,本文谈谈在博图里面自定义数据类型的使用。
创建新的数据类型
新的数据类型有啥用呢?举个例子,假设有8台电机,这8台电机用变频器来控制,那么每台电机用到的数据有:
名称 | 数据类型 |
---|---|
运行反馈 | bool |
故障信号 | bool |
运行 | bool |
频率 | real |
古典方法
“古典“的情况下,变量表中M一个一个的加,VD一个接一个的用。稍微会点技巧的人用地址自动分配功能和外部Excel编辑配合使用,不会太浪费时间。但是变量太多,地址自动分配完后,后期的编程中难免会出幺蛾子。
流行方法
DB数据块在博图编程中应该是越来越流行了,所以很多人会创建一个DB数据块,然后继续在里面堆变量。这么做的好处是如果你使用默认的“优化的块访问”,那么就不用纠结地址问题,软件会自动优化分配。
如果你不嫌麻烦,你可以创建多个DB块,分开放置每个电机的参数,那在调用的时候就比较舒服了。
然而,会遇到另外一个问题:如果我想每个电机增加一个参数,那还是得一个一个地调整。
新建数据类型
好,那么为了便于后期的程序修改或调整,可以采用创建新的数据类型来解决这个问题。
- 新建数据类型,名称为motorType,里面创建三个bool,一个real变量。SCL程序如下:(我习惯用SCL了)
TYPE "motorType"
VERSION : 0.1
STRUCT
motorRunning : Bool; // motor running(feedback singal)
motorErr : Bool; // VFD error singal
motorStart : Bool; // motor start
motorFrequence : Real := 0.0; // motor speed
END_STRUCT;
END_TYPE
2.创建DB数据块Motor,新建数据motor1,数据类型为motorType。然后依次新建motor2、motor3…
3. 如果后期想增添电机参数,可以更改数据类型定义,那么DB数据块会报错,此时只需进行更新就可解决。
如下图,在数据类型中新添一个变量motorStop
此时刚才建立的数据块会报错
单机更新接口图标,数据块根据刚才修改的数据类型进行了更新
这种方式特别方便,基本不用去修改原先的PLC程序中的变量。
本文参考了付老湿的blog,感谢!