电工学习网

 找回密码
 立即注册
查看: 7340|回复: 2
打印 上一主题 下一主题

PLC程序批量生成

[复制链接]
跳转到指定楼层
楼主
发表于 2017-1-12 15:59:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
在不使用任何辅助编程工具的时候我们在Step7中编写程序是什么样的呢?假设我们对10个直接启动马达进行控制,设备位号为M01-M10,在基于结构化模块化的编程方法下,大概是这样一个过程:1. 编写一个马达控制的基本功能块:在Step7中添加一个FC/FB,修改符号名为MOTOR_GEN;添加一个自定义数据类型,修改符号名为UDT_MOTOR_CTRL,定义数据成员包含:运行状态变量、故障报警变量、上位机操作变量、故障延时设定变量、运行时间等;完善MOTOR_GEN的控制逻辑。
2. 创建控制变量:添加一个DB,修改符号名为DB_MOTRO_GEN;在DB中依次创建10个变量,名称M01到M10,选择数据类型为UDT_MOTOR_GEN,并输入变量描述。
3. 编写M01的控制程序:中添加一个FC/FB,添加符命号名为FC_M01,在FC_M01调用基本控制块MOTOR_CTRL,根据工艺完善M01的启停条件及连锁条件。
4. 编写M02的控制程序:打开FC_M01,Save As..成另一个功能块,并修改功能块符号名,打开查找/替换功能,把“M01”替换成“M02”,根据工艺完善M02的启停条件及连锁条件。
5. 同样的方法编写M03-M10的程序。
6. 在OB中调用编写好的FC_M0X的所有程序。
通过上面我们可以看到我们编程大部分在做创建DB、创建FC/FB、添加DB/FC/FB的符号名、Save as、查找/替换的工作,我们可不可以把这部分工作变得简单让辅助工具自动完成而我们只需要修改相关设备的启停调节及连锁条件呢?答案是肯定的。
在Step7中,我们用LAD、STL都可以反编译成Source源文件,SCL就更不用说了。这种文件是可以导出/导入的,并且可以用文本编辑器打开。即我们可以通过文本编辑器修改代码然后导入到Step7中。
我们再打开Step7中的符号表看看,符号表也是可以导入/导出的,导出的文件后缀为.asc,并且也是可以用文本编辑器打开的。

PLC程序批量生成

工具的实现:
1. 我们把上面编写的FC_M01的块导出并作为此种类型的典型控制程序块,文件名重命名为“MOTOR_GEN.AWL”,其中MOTOR_GEN作为后面定义设备的类型关键字,把文件中的M01替换成关键字“DEVICE_TAG”,把文件中FC TITLE =后面改为关键字DEVICE_DESC。如下:
FUNCTION "FC_ DEVICE_TAG " : VOID
TITLE = DEVICE_DESC
注:此文件为后面生成程序的模板文件,很关键,反编译的FC可以采用STL和LAD混搭都没有问题,编写逻辑的network可以用LAD,调用基本功能块可以用STL。

2.用Excel在名为“Item List”的工作表中制作一个设备清单,包含设备位号,设备描述,设备类型和分配设备控制的FC编号,设备类型为我们上面保存的STL源文件的文件名称,如下图:
PLC程序批量生成
图1:设备定义
3. 在名为“Define”的工作表中预定义此种类型的设备需要在程序中创建的DB及在DB中要创建的变量类型
例如上面对MOTOR_GEN类型的设备需要在DB1(DB_DIDO)中创建一个类型为UDT_MOTOR_IO的变量,在DB11(DB_MOTOR_GEN)中创建一个类型为UDT_MOTOR_GEN的变量。
PLC程序批量生成
4.工具首先从“Item List”的第二行开始搜索,如果设备类型不为“空”时,在文件输路径下创建名为FCs.AWL的文件,在保存“典型文件”(例如上面为“MOTOR_GEN.AWL”)的路径下查找是否有“设备类型.AWL”的文件,如果有,读取文件内容,把文件内容的“DEVICE_TAG”替换成当前行中的设备位号,把DEVICE_DESC替换成当前行中的设备描述,然后添加到FCs.AWL文件中,FCs.AWL即为生成的所有FC的源文件。
如果选择了“生成符号表”则在文件输路径下的符号文件Symbol.asc中插入一条定义FC符号名的文本,符号名命名格式为“FC_设备位号”。添加的文本格式为:
126,FC_xxx FC 8 FC 8 F描述
如果选择了生成数据表(DB LIST),工具根据前面的设备类型在名为“Define”的工作表中的“Device Type”列中搜索包含相关“设备类型”的行,然后搜寻此行中不为空的列,根据此列的第一行定义的DB(定义格式为:DB编号:DB符号名称),在文件输路径下创建创建名为DB符号名称的DB STL源文件并添加以设备位号命名的变量。
预览一下生成的文件:
PLC程序批量生成
图3:文件预览
工具还包含创建WINCC变量和报警清单,生成的清单可以用来创建WINCC变量和报警,需要定义UDT偏移量及在WINCC变量的后缀,WINCC的消息位等。在此就不介绍。
PLC程序批量生成
图4:定义UDT
PLC程序批量生成
图5: 定义报警

回复

使用道具 举报

沙发
发表于 2017-1-12 21:17:31 | 只看该作者
学习了解一下

回复 支持 反对

使用道具 举报

板凳
发表于 2022-2-8 16:11:18 | 只看该作者
英语不好 看的头蒙

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-4-29 03:30

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表