学习目标:
学习FCA(USA)发动机装配线的设备PLC程序,抽丝剥茧每个功能应用。
连载文章(1)
本系列文章的分享旨在于能给工控行业的电气人带来程序设计上的帮助。
学习内容:
1、 符号表命名规则
2、 内部变量命名规则
3、 程序块命名规则
仿真画面
前方高能,请做好笔记~~
一、符号表命名规则:
符号表分组
总体分组如下图所示:
以模块化的思想将各类硬件合理划分,输入信号和输出信号分开,避免单个组中的符号表变量过多。
- 电柜内部输入输出信号,主要是柜内PLC的输入和输出信号,分别放在CabinetInput和CabinetOutput组中。
下图是CabinetInput 内容
下图是CabinetOut的内容
2. 辊道上的接近开关、停止器、适配器夹持器等气缸反馈信号放在ET200ProInput组中。
3. 阀岛的输出信号放在MainValveOutput中。
- 对于第三方硬件,每种硬件单独放在一个分组中,方便查找。可以预先使用UDT将接口信号定义好,在变量表中加载UDT。
下图是Robot的变量表
符号表的命名规则
1、 采用Camel命名规范,即变量首字母小写,其余单词首字母大写,例如:iRB150Safety;
2、 输入信号以“i”开头,输出变量以“o”开头。
二、程序块内部变量命名规则:
1、 对于FB/FC块其变量类型有输入、输出、静态变量(only FB)、临时变量、常量、输出输出变量。每种类型的变量在命名时需要在前面增加前缀,仍然采用Camel命名规则。
§ 输入变量(Input)使用“i”作为前缀*
见下图
§ 输出变量(Output)使用“o”作为前缀*
见下图
§ 输入输出变量(InOut)使用“io” 作为前缀
§ 静态变量(Static)使用“stat” 作为前缀
§ 临时变量(Temp)使用“temp” 作为前缀
§ 常量无需使用前缀,但是命名需要全部使用大写。
2、 对于全局DB和背景DB的命名规则为:
§ 全局DB命名采用Pascal的命名方法,即每个单词的首字母大写,其余小写。
§ 背景DB命名采用前缀“inst”,采用Camel的命名方法。背景DB需要单独放在一个分组中。我们下面介绍程序框架时会介绍。
三、程序块命名和分组规则:
§ 程序块按照对应的功能分类放在相应的功能组中。本程序的一级功能组有OBs、Main、SafetyMain、StandardFunctions。
§ OBs组中的程序主要是OB82(诊断中断)、OB121(编程错误)、OB83(插拔中断)、OB86(机架故障)、OB100(暖启动)、OB80(时间错误)
§ 一级分组Main主要包含了HMI面板按钮的控制、工位的全局状态、工位的互锁、各种硬件的控制等程序。本组中的程序块都是从FC50中调用,层次感非常强。后面出现问题需要查找故障的时候,也好着手。
我们看一下每个分组中的FB/FC的命名,在MP中的程序块都是以“MP”作为前缀,在AW01组冲的程序块,以“AW01”作为前缀。本组中使用到的背景DB则是单独存放在InstanceDBs中。
§ 一级分组SafetyMain中包含了所有的安全程序,FC0用于调用所有的安全程序块。
§ StandardFunctions功能组是这套程序的最为经典的地方,他包含了这个项目中需要用到的所有的硬件控制接口程序块和控制块,还有HMI lite标准程序块。后面我会针对每一种硬件详细介绍,从中可以学习到老外对于设备的控制思路。
#END
结语:小编目前也是工控人的一份子,正在为祖国的现代化贡献者汗水,工作之余加班加点赶出来的这篇文章,实属不易。各位客官如有问题请在评论处留言,我会一一解答。
后续我会庖丁解牛般将这套程序每个功能部分分享给大家。咱们共同进步。有需要这套程序的可以私聊哈。
希望大家关注我,后续我还会分享BMW(BX8生产线,本人亲自参与设计调试)的程序。