苏州实操派科技有限公司官网-实操派教育科技,汇川技术PLC培训,实操派PLC培训,苏州PLC培训机构

基于OMAC的设备标准化(PLC)应用(4)

[复制链接]
8 271

附件下载,需登录可以查看贴内更多信息

您需要 登录 才可以下载或查看,没有账号?立即注册

x
以下文章来源于壶琰棠 ,作者壶琰棠主。

接触过很多程序,也曾经调试过一些别人的程序,特别是对于调试别人程序的时候,很多工程师都会说“哎,还不如自己重新写一遍来的快”;这可能是由于别人程序写的不好,思路和逻辑混乱,但我想更多的第一不好的感觉应该是在编程的规范上,因为你会发现程序里面好多的TagXX(XX是不断累加的数字),而以前Step7编程的程序都是M绝对地址符号,导致可读性和可理解性非常差;除了变量符号不规范外,由于没有严谨良好的程序结构和编程习惯,程序中对同一个设备的处理程序经常会混乱交叉,数据交换混乱不堪;还有就是一些变量和符号没有告知具体来源(比如SCADA/HMI),而这些变量有的时候只是参与了一些状态控制,但变量名称可能只是一些没有意义的符号,这个时候你阅读程序就会感觉这个变量真是天外来客一样,不知道怎么来的;也有一些公司随着时间的累积会将一些固化下来,但很多时候做的不彻底,不同的设备或项目可能大部分相似,但总是有一些地方做的不是特别彻底;。。。。。。可能还有很多,但无法一一列举,特别是国内整个工控行业的文档做的非常差,很多都是要靠工程师自己一个个去猜测,所以很多工控人士很害怕调试别人程序,即使这个别人是自己公司的同;本章节的编程规范的标准化以西门子的PLC为例子,不同的PLC的编程规范可能不一样,但这都和整个的标准化的思路不冲突,这只是程序书写的规范而已;本章节描述的编程规范也不是西门子的官方定义,只是多年以来的个人感觉调理清晰且易识别的规范,而且这个规范更多的体现在书写规范上,和设备的工艺过程没有关系;很多时候,标准规范的书写非常有助于程序的思路整理和理解,所以这个章节更多的是参考意义,可以参考这个思路整理自己的书写规范,若不弃也可以按照本章节描述的思路作为书写规范;首先,编程软件中变量命名应该遵循以下原则,这个原则适用于所有模块的编程:l  变量名由字母、数字、下划线组成;l  必须以字母开头,英文单词的首字母大写;l  变量名必须是有意义的词语或词语组合,之间用下划线隔开:Act_Temperature;l  不能超过32个字符,如过长可简化单词,能看懂即可,例如:英文单词Machine可缩写为Mach;l  不能使用一些关键字(if,for…);l  使用英文(变量尽量多做注释);高级语言行业内程序员目前常用的命名方式主要有4种,它们分别是:l  匈牙利命名法,它的表现手法主要是变量前有类型前缀,比如intMyName;l  骆驼(驼峰)命名法,主要表现为变量首字母小写,例如myName;l  帕斯卡(pascal)命名法,例如MyName;下划线命名法,变量名用下划线隔开并全部小写,比如my_name;在面向对象的标准程序中推荐使用前缀+下划线+帕斯卡命名的方法,其中前缀用于表示变量类型,下划线用于隔开前缀和后面部分,帕斯卡主要用于描述该变量的功能。若名称比较长,帕斯卡部分可能也会存在简写的可能,依据实际情况确定;4.1.   M变量命名规范外部变量(实际硬件的IO信号)的命名规则在2.3中已经描述,那些变量符号主要是前缀+元器件的ID+功能描述组成;本节主要描述西门子PLC的M寄存区的变量的命名的规范;       比如一个表示当前日期的变量名为:MW_CurrDate,其中MW表示变量类型为Word或者Int,Curr是英文Current的缩写,Date为英文字母日期;       常用的前缀主要有如下几个:l  布尔型                         Ml  字符型/字节型             MBl  整型/单字                    MWl  双整型/双字/浮点型      MDl  字符串                         MS
4.2.   功能块/函数编程规范标准化程序中建议所有的功能块或函数的编程语言都使用SCL,因为SCL是文本类编辑语言(STL虽然也是文本类编辑语言,但可读性太差,且执行效率也不如S7-300/400中高),便于其他工具软件对里面内容的修改和合并,而图形类的语言就不具有此优势;由于所有设备程序和程序框架都是标准的,所以文本类语言可以通过其他工具软件复制粘贴,利于使用其他工具软件自动生成PLC程序;4.2.1.       命名规范功能块(FB)主要用于控制对象在程序中的实例化,根据前文描述的,每一种工艺设备对应一个功能块(FB);FB是标准化工艺设备(设备分层中处于UN或者EM级别)的主干程序,一般命名方式为FB_EM(UN)_XXX,其中FB表示程序的类型,EM(UN)表示主干设备的程序,XXX就是对应的具体工艺的名称,比如一个打包机设备的FB的名称为FB_BC_Pack01。由于打包机的工艺可能存在多种样式,所以Pack01中的01即表示某种工艺的打包机,这些都必须在工艺文档中给予清晰描述;除了主工艺设备的FB的命名,功能元器件的功能块(FB)一般命名方式为FB_CM_XXX,其中FB表示程序的类型,CM表示主设备的基本组成元件控制模组CM(OMAC设备分层),XXX对应的具体元器件名称,比如一个末端光电的FB名称为FB_CM_EndPEC;一般设备或项目到元器件的FB就不能再细分,和整个设备的层次划分是一致的;但若某些元器件的功能中还能向下细分不同功能,那功能块(FB)的命名方式为FB_BM_XXX。比如某个功能块,即需要在电机功能块中调用,也需要在光电功能块中调用,是这些CM元器件的分支功能,所以以Branch的首字母和Mode的首字母组成,称呼为BM。一般BM的形式非常非常罕见,除非工艺分解的非常之细化才有可能存在。这样对于设备层面的功能块(FB)就按照层次分为三级,他们可以嵌套的关系为EM(UN)>CM>BM,即前面的可以调用后面的FB作为内部的静态变量;除了设备控制的功能(FB)以外,其他功能(FB)和函数(FC)命名方式为前缀_XXX,其中前缀表示该程序的类型,比如FB或者FC,XXX代表该功能(FB)或函数(FC)的功能的英文单词或词组;比如后面要介绍的控制指令管理程序名字为FB_ModeAndStatesManager;4.2.2.       形参和变量规范形参实参说明:本质不同:形参的本质是一个名字,不占用内存空间。实参的本质是一个变量,已经占用内存空间。            
1.png
图 4‑1 : PLC中的形参实参示意图上图中红色框框内的就是形式参数,若FB没有实例化或者FC没有被调用,它只是个名字而已没有任何意义;绿框内的就是实际参数,具有实际的地址;在Portal中可以设置脚本编辑器的不同类型的文本的颜色,所以在标准化程序中,形参和实参以不同颜色标识,便于阅读时候更能快速区分。Portal中点击选项à设置后,在弹出的界面中选择常规à脚本/文本编辑器,然后再字体颜色中可以按照需要设置不同文本的字体颜色。
图 4‑2 : Portal中脚本字体颜色设置示意图在PLC编程中,形参和实参的名字可以相同;不同的FB的形参的名字也可以相同,特别是存在嵌套的FB块中,两个形参的名字相同更方便程序的编写和批量生成;
l  前缀所有形参和变量的命名都要体现出其属性,即通过形参或者变量名字就能一眼看出这是属于哪一类,通常用小写字母表达,即前缀+下划线+帕斯卡命名;
2.png
表 4-1 : FB和FC的接口符号前缀表  l  形参命名规则FB(FC)的实参可以来自(一)实际设备的传感器或执行器(二)控制过或面板上控制指令(三)工艺设备的配置参数(四)程序中的中间变量,若所有FB(FC)的形参的名字也表达了参数的来源,那在程序的阅读和理解的时候就非常便利;比如设备中有个仪器检查产品外观是否满足要求,若满足要求则将产品“释放”到系统中;有的时候仪表可能判断出不合理,但在人工检查站检查的结果还是在偏差范围内,那人工可能就需要按下一个按钮将其重新“释放”到系统中;这个时候人工按钮和仪器自动检测的“释放”的指令是一样的,但来源不一样;若形参中可以表明这个区别,那在阅读理解程序的时候就能避免一些困惑,便于快速的理解;所以,对于FB(FC)的形参命名的时候,在名字前缀后面加一个修饰符号(若有),通过这个修饰符号来判断形参的可能的来源,对应上述的四种情况的修饰符号有如下表格对应:
3.png
表 4-2 : FB和FC的形参修饰符表
4.png
图 4‑3 : PLC中的形参名字示意图如上图中的绿色框内形参的名字为i_HW_EndPEC,名字表明了这个形参来自实际设备的硬件IO;蓝色框内形参的名字为i_CMD_Reset,名字表明了这个形参是控制指令类的命令;小红色框内形参的名字为i_CFG_Speed,名字表明了这个形参速度的设置值;大红框内就是程序中的一些中间变量,直接使用功能的名字来做形参的名字;4.2.3.       程序属性编程规范不涉及具体编程,只是规定了一个FB或者FC程序的信息类表达的方式,比如FB或FC的属性以及程序中的注释等;FB或FC的属性有两种方法,第一种就是给每一个在程序中建一个头文件,说是头文件,其实就是一段描述性的文字,头文件中包括但不限于以下内容:著作所有权、功能概述、作者、程序类型、具体的功能描述以及修改历史,类似于下图所示;
5.png
图 4‑4 : 程序头文件示意图图示为SCL编程语言的书写示意,若是LAD的编程语言,可以直接复制粘贴在块标题中,格式神的都是一样的;第二种就是使用Portal自带的属性工具,选中某个FB或FC块,右键选择属性,在弹出框种选中信息:
6.png
图 4‑5 : 块属性示意图块属性信息中也规定了标题、注释(可以复制上述的头文件)、版本以及作者等信息,但这个不好之处在于无法自定义,只能按照这个格式书写;而头文件的方式可以自由定义内容,同时在不同品牌转换的时候也可以做到无缝衔接;4.3.   数据块(DB)及其他名称规范PLC中的数据块分为全局数据块和背景数据块,若按照面向对象的思想理解的话,背景数据块其实就是设备实例后的私有数据,只不过在PLC中北京数据块也能直接访问;所有的命名规则通用的是都用前缀表明其身份,DB块也是如此;全局数据块名字的前缀为DB即DataBlock,完整名称为DB+下划线+名称,比如设备参数设置的数据块的名字为DB_Parameters;背景数据块名字的前缀为DI即DataInstance,完整名称为DI+下划线+FB的名称+归属描述;比如一个设备的ID是UN01_EM01,其控制程序块名字为FB_EM_Pack01,那相对应的实例化的数据块的名称为DI_FB_EM_Pack01_UN01EM01.;非设备控制的DI的名字根据不同情况有不同的方式;比如一个FB_Control,在程序中只调用依次,那它的背景数据块的名字为DI_FB_Control,不需要加上归属描述;若该程序需要调用多次,那背景数据块的名字还是要加上归属描述用以区分;所以,整体上DB块命名的规则可以理解为:前缀+实例化的FB名字+归属描述(若有);
其他自定义名称规则为前缀+下划线+功能名称,比如再CPG中定义的事件的数据,则该UDT的名字则为UDT_Event

免责声明:内容为网友自行发布或者来自互联网资源或者参考文献,如果侵犯了您的权益,请联系站长 1304546267@qq.com,我们会及时删除侵权内容,感谢您的理解!

相关帖子

回复

使用道具 举报

灵宝雄起滴 2022-8-24 08:43:53 | 显示全部楼层
很好的资料,感谢,,,
回复

使用道具 举报

123458480 2022-8-24 08:51:06 | 显示全部楼层
很好的资料,感谢,,,
回复

使用道具 举报

很好的资料,感谢,,,
回复

使用道具 举报

征途吃史榔 2022-9-22 11:39:25 | 显示全部楼层
很好的资料,感谢,,,
回复

使用道具 举报

nzb37618 2022-9-22 15:31:55 | 显示全部楼层
内容详细,感谢分享
回复

使用道具 举报

123458680 2022-10-21 08:54:09 | 显示全部楼层
很好的资料,感谢,,,
回复

使用道具 举报

唯美和声什 2022-10-21 09:04:02 | 显示全部楼层
很好的资料,感谢,,,
回复

使用道具 举报

关键词:

- 程序调试
- 编程规范
- 变量命名
- 匈牙利命名法
- 骆驼命名法
- 帕斯卡命名法
- M变量命名规范

文章大纲:

1. 程序调试的困难和问题
   - 缺乏规范和良好的编程习惯
   - 变量符号不规范和可读性差
   - 程序结构混乱和数据交换混乱
   - 变量来源和含义不清晰
   - 标准化的重要性

2. 编程规范的重要性
   - 提高代码的可读性和可理解性
   - 整理思路和减少错误
   - 方便维护和扩展

3. 变量命名的原则和规范
   - 使用字母、数字和下划线组成
   - 以字母开头,首字母大写
   - 有意义的词语或词语组合,下划线隔开
   - 不超过32个字符,可以简化单词
   - 避免使用关键字
   - 使用英文,并注释变量

4. 变量命名的常用方法
   - 匈牙利命名法
   - 骆驼命名法
   - 帕斯卡命名法
   - 下划线命名法
   - 面向对象的标准程序推荐的命名方式

5. M变量命名规范
   - 外部变量命名规则
   - M寄存区变量命名规范

扩写内容:

程序调试是每个工程师都会遇到的任务,但有时候调试别人的程序会让人倍感困难和痛苦。这可能是因为别人的程序写得不好,思路和逻辑混乱,导致代码难以理解和维护。然而,更多的问题往往是在编程的规范上。很多程序中使用了类似"TagXX"的变量,而且没有良好的命名规范和编程习惯,导致可读性和可理解性非常差。此外,同一个设备的处理程序经常会交叉混乱,数据交换也会变得混乱不堪。另外,一些变量和符号没有告知具体来源,让人无法理解其含义和用途。这些问题使得程序调试变得非常困难,特别是国内工控行业的文档质量普遍较差,需要工程师自己去猜测。

为了解决这些问题,编程规范变得非常重要。一个良好的编程规范可以提高代码的可读性和可理解性,并且有助于整理思路和减少错误。它还可以方便程序的维护和扩展。在制定编程规范时,变量命名是一个重要的考虑因素。

变量命名应该遵循一定的原则和规范。变量名应由字母、数字和下划线组成,并以字母开头,首字母大写。变量名应该是有意义的词语或词语组合,之间用下划线隔开,长度不超过32个字符。如果太长,可以简化单词,只要能看懂即可。此外,应避免使用关键字,使用英文并注释变量。

常见的变量命名方法包括匈牙利命名法、骆驼命名法、帕斯卡命名法和下划线命名法。匈牙利命名法使用类型前缀,例如intMyName;骆驼命名法将变量首字母小写,例如myName;帕斯卡命名法将变量首字母大写,例如MyName;而下划线命名法将变量名用下划线隔开并全部小写,例如my_name。在面向对象的标准程序中,推荐使用前缀+下划线+帕斯卡命名的方法,其中前缀表示变量类型,下划线用于隔开前缀和后面部分,帕斯卡命名法用于描述变量功能。根据实际情况确定是否简写。

在M寄存区变量的命名规范中,常用的前缀包括Ml(布尔型)、MBl(字符型/字节型)、MWl(整型/单字)和MDl(双整型/双字/浮点型)。例如,表示当前日期的变量名可以命名为MW_CurrDate,其中MW表示变量类型为Word或者Int,Curr是Current的缩写,Date为日期。

以编程规范和良好的变量命名为基础,可以提高程序的质量和可维护性。规范化的编程方法使得程序更易读懂和理解,减少了调试的困难,为工程师们的工作带来了便利。因此,在编写PLC程序时,我们应该秉持规范化的思路,养成良好的编程习惯,为自己和他人都提供更好的工作体验。
                                                                                                                                                                                                                                                 以上内容来自  AI机器人,如需继续对话,则在此回答下“点击回复” 或者 在提问时  “@机器人”!禁止 "黄赌毒及政治敏感",违者封号,严重者 提交 网警公安部门。本站不对内容真实性负责,AI机器人有时候会乱说一通……
回复

使用道具 举报

data/attachment/temp/202212/30/133743h8cd9z14sjs84kaz.png_thumb.jpg 共31章节615课时

【全科班】汇川中型PLC从0到1就业班(Codesys系统化全科班课程-600节+)-汇川PLC教程

朱子文

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/VMdEZiqp3BMkbBIlMRRD.png 共9章节44课时

【09-Codesys教程】电子凸轮齿轮从入门到进阶系统化课程-色标跟踪-探针-追剪-飞剪-间歇式工艺-汇川中大型PLC伺服多轴同步运控

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240217/v39r666Z663eBBGKErRm.png 共30章节630课时

【全科班】汇川技术H5U从0到1就业班(系统化全科班-600节+)

张汉清

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240207/HlL5SWHry9lPVdqC8i59.png 共5章节63课时

【01-Codesys教程】ST文本从0到1,从入门到进阶-汇川中大型PLC教程

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240227/AMo32PcbJeIMJBT3m8Pu.png 共4章节36课时

03 中大型ST文本结合仿真软件小项目 31节-气缸功能块封装-状态机编程思路-小设备框架

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Fu5pu34pPcTpu0La443P.png 共6章节52课时

【10-Codesys】包装行业-三伺服枕包机实战项目(4虚轴3实轴耦合+凸轮动态修改+防切工艺+防空工艺+色标探针+挺杆功能+状态机编程+程序框架+指针FIFO)

朱子文

¥ 899.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Su1ibr3I77yl78DLBR7D.png 共4章节29课时

【12-Codesys小课】中大型PLC-PID控制器算法从入门到进阶之液位控制系统

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/Cz3hqDmDD8qHfT3MDm4m.png 共3章节30课时

【05-Codesys教程】汇川中大型PLC单轴运动控制教程-汇川PLC教程

朱子文

¥ 399.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/gXpEpJ8Qb78eD5lDqlnQ.png 共3章节25课时

【06-Codesys教程】汇川中大型PLC运动控制进阶篇(多轴PTP)-编程框架与编程模板实操

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/e39s63ppg54Q2s5H33H9.png 共3章节24课时

【08-codesys教程】汇川中大型codesys教程-多轴运控扩展篇经验分享小知识分享

朱子文

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

本版积分规则

data/attachment/temp/202212/30/133743h8cd9z14sjs84kaz.png_thumb.jpg 共31章节615课时

【全科班】汇川中型PLC从0到1就业班(Codesys系统化全科班课程-600节+)-汇川PLC教程

朱子文

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/VMdEZiqp3BMkbBIlMRRD.png 共9章节44课时

【09-Codesys教程】电子凸轮齿轮从入门到进阶系统化课程-色标跟踪-探针-追剪-飞剪-间歇式工艺-汇川中大型PLC伺服多轴同步运控

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240217/v39r666Z663eBBGKErRm.png 共30章节630课时

【全科班】汇川技术H5U从0到1就业班(系统化全科班-600节+)

张汉清

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240207/HlL5SWHry9lPVdqC8i59.png 共5章节63课时

【01-Codesys教程】ST文本从0到1,从入门到进阶-汇川中大型PLC教程

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240227/AMo32PcbJeIMJBT3m8Pu.png 共4章节36课时

03 中大型ST文本结合仿真软件小项目 31节-气缸功能块封装-状态机编程思路-小设备框架

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Fu5pu34pPcTpu0La443P.png 共6章节52课时

【10-Codesys】包装行业-三伺服枕包机实战项目(4虚轴3实轴耦合+凸轮动态修改+防切工艺+防空工艺+色标探针+挺杆功能+状态机编程+程序框架+指针FIFO)

朱子文

¥ 899.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Su1ibr3I77yl78DLBR7D.png 共4章节29课时

【12-Codesys小课】中大型PLC-PID控制器算法从入门到进阶之液位控制系统

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/Cz3hqDmDD8qHfT3MDm4m.png 共3章节30课时

【05-Codesys教程】汇川中大型PLC单轴运动控制教程-汇川PLC教程

朱子文

¥ 399.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/gXpEpJ8Qb78eD5lDqlnQ.png 共3章节25课时

【06-Codesys教程】汇川中大型PLC运动控制进阶篇(多轴PTP)-编程框架与编程模板实操

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/e39s63ppg54Q2s5H33H9.png 共3章节24课时

【08-codesys教程】汇川中大型codesys教程-多轴运控扩展篇经验分享小知识分享

朱子文

¥ 299.00

到"π³ 实操派",学PLC就是快!汇川PLC及Codesys培训

项目实战 手把手教学 微信&电话 15850116008
超600节系统化课程,汇川优秀自动化讲师亲授!学一门Codesys,玩800家PLC仅剩少量名额
点击免费试听

到实操派,学PLC就是快!

扫码领取工控文库VIP

钻石VIP先到先得

服务电话 & 微信:9:00-22:00

15850116008

苏州实操派科技有限公司

公司地址:江苏省苏州市吴中区越溪街道天鹅荡路5号31B13

Copyright © 苏州实操派科技有限公司 2022 到实操派,学PLC就是快!工业自动化业务培训适用人群:成人 ( 苏ICP备2022021576号-3 )

公司地址:江苏省苏州市吴中区越溪街道天鹅荡路5号31B13

返回顶部