基于第三代通用程序模板框架,把全ST的汇川ACPLC程序模板给开发完善了;保留了其他模板一直以来的风格,就是不管是哪款PLC,做出来的程序模板格式风格、程序用法都尽可能一样,让大家把一个模板琢磨明白了,就能毫无难度地去上手其他品牌的PLC程序模板;下面我来给模板做个简单介绍,其实用过我汇川EASY模板的可以跳过~(具体程序模板,到公众号菜单里获取)要注意的是,我没提前分配掉电保持区域,所以您在使用的时候,把下面这些变量设置为掉电保持变量:
mPersistentVars;//部分程序中用到的掉电保持开关、地址等
mCYParam;//气缸参数,需要掉电保持,比如延时、屏蔽等
mVCParam;//吸嘴参数,需要掉电保持,比如延时、屏蔽等
M01Param_M40Param;//所有的轴位置速度等信息
mBackup;//备份和恢复用
OEE_Maintain;//OEE设备维护信息
OEE_ProductData;//OEE生产产量信息
OEE_ProductYield;//OEE设备稼动率等信息//还有其他需要掉电保持的变量
一、整体布局
如下图所示:
第一部分是GlobalVars,这是全局变量的部分,还分成了好几个文件。Public这里面的是所有设备都共有的,Machine1里面的是当前设备会用到的变量,如果有多台设备的话,还能再新建Machine2之类的,这样每一个就都是独立分开的。
第二部分是结构体以及数据类型,大致分成了这么几大类,如下:
(常用结构体用struct但是我自己比较喜欢Class类,大家理解)
//
Stru_Axis主要为轴控相关
CalssAxis//一下三个的组合类
ClassAxisHMI//HMI触摸屏相关变量
ClassAxisParam//轴参数地址,需要掉电保持,所以独立出来了
ClassAxisStatus//轴状态相关
ClassEncoderAxis//编码器轴相关,飞拍经常会用到
ClassKUKARobot4//KUKA4轴机器人用
ClassAngelDivider//角度分割器用//
Basic文件夹内为程序框架基本类
ClassSystem//提供了一些时钟闪烁,时间日期相关变量
ClassIO//IO映射交互相关
ClassMode//设备运行模式相关,启动停止,自动手动切换
ClassRunData//设备生产状态,产量,CT等简单功能
ClassPersistentVars/ClassVars//过程用到的变量,减少新建HMI标签
ClassCylinder//气缸相关,还有个
ParamClassVacuum//吸嘴相关,还有个
ParamClassAlarm//报警相关
ClassInit//初始化相关
ClassStation/ClassSteps//工站和程序步骤控制
ClassSocket//以太网TCP通信
ClassBackup//备份和恢复用//OEE文件夹,主要是三大记录功能用,维护/生产/品质
ClassMaintain//维护保养
ClassProductionData//生产数据
ClassProductionYield//生产质量//
Vision当然是视觉以及一些上位机交互的,如MES
VisionTRG//触发交互
VisionCheck/VisionGuide//检测/引导
VisionCalibration//视觉标定相关
MesBindSN//MES绑定
MesCheckData//MES查询
MesPostData//MES上传//等等其他的就不具体讲了,主打一个提前封装
3.第三部分为提前封装好的功能块,如下:
//Func_Axis轴、电机、机械手相关执行件的控制
FB_MotorEC//EtherCat轴控制功能块
FB_MotorEC_Gantry//龙门特例
FB_Robot_KUKA4//库卡4轴机器人
FB_AngelDivider//角度分割器//
Func_Basci基本功能功能块
FB_RunMode//运行模式控制
FB_Switch//一般开关控制
FB_Cylinder//气缸控制
FB_Vacuum//吸嘴控制
FB_Step//程序跳步控制
FB_Socket//服务器/客户端两个功能块//OEE采集相关功能实现
FB_MaintainFB_ProductionDataFB_ProductionYield//Func_Vision视觉相关
FB_VisionTRGFB_VisionCalibrationFB_VisionAxisTest//等等其他
第四部分是程序框架的主体部分,通常情况下只有一台机器,因此就创建了一个文件夹。要是有多个设备由一个PLC控制的话,可以通过取名字来加以区分,比如说Machine1/2/3之类的:
//程序框架分为四个部分M1_A系统程序A1输入输出();
//刷新输入输出A2运行模式();
//设备运行模式控制,简单生产数据统计A3报警汇总();
//所有报警的汇总中心A4运转准备();
//设备初始化流程M1_B功能程序B1功能开关();
//功能开关B2气缸();
//气缸控制B3吸嘴();
//吸嘴控制B4视觉交互();
//视觉交互B5以太网通信();
//以太网通信B6数据交互MES();
//MES交互B7数据OEE采集();
//OEE生产数据采集B8数据备份与恢复();
//备份与恢复,类似配方M1_M运动程序[注意:独立任务运行,在EtherCAT任务内]M1轴控程序();
//一般轴控制M2其他轴控();
//特殊轴控制,比如编码器轴M3视觉相关();
//视觉动静态,视觉标定相关M1_R拓展程序R01库卡机器人();
//库卡机器人控制R10角度分割器();
//角度分割器控制//其他独立部件控制M1_ST工站程序M1_ST00工站动作()
//按工艺,将设备划分成不同工站M1_ST01工站动作()
//然后程序分类写在对应位置M1_ST02工站动作()M1_ST03工站动作()//等等
大体上先介绍这么多
汇川AC系列PLC——程序模板论坛-全力打造可编程控制器专业技术论坛-
;tid=508239fromuid=1
(出处:PLC论坛-全力打造可编程控制器专业技术论坛)