您好!欢迎光临工博士商城

西门子品牌服务商

产品:4086    

咨询热线:18597848426

QQ QQwx 微信
您当前的位置:首页 » 西门子新闻中心 » 西门子PLC模块有型有范—如何实现 S7-1200/S7-1500 程序的规范化?
产品分类
西门子新闻中心
西门子PLC模块有型有范—如何实现 S7-1200/S7-1500 程序的规范化?
发布时间:2022-08-09        浏览次数:1680        返回列表
作者:庞开航-西门子工业技术支持中心
1、西门子PLC模块文档来了
        为满足日益增长的标准化项目需求,西门子推出了适用于SIMATIC S7-1200/S7-1500的编程风格指南(后文简称《指南》)。
        下载链接:https://support.industry.siemens.com/cs/cn/zh/view/109478084
        西门子发布《指南》的目的旨在帮助开发者能够按照统一的编程风格、思路、习惯去设计和开发程序。从而提高程序的可读性,促进项目的标准化。《指南》也是顺应标准化的趋势,为还没有自己的开发规范,或者规范比较简单的团队指引了一个方向。并不是说《指南》中所有的规范都必须遵守,但是至少《指南》中列举出的都是很有参考价值的,值得加以重视的内容。
        此外《指南》也是西门子标准化体系的一个重要组成部分。毕竟是和编写代码息息相关,作为开发者也需要深入了解,做好标准化知识的储备。

《指南》将提出的要求分为规则和建议两类:
● 规则:有一定约束力,一般都需要遵守,对于可复用编程是必不可少的,如有违背需要记录在案。
● 建议:要求比规则低一些,建议遵守。

        通过这些规则与建议的执行,能够有效地将项目规范化,有助于统一您和您的团队编程风格,便于前期的项目管理以及后期的开发维护工作。
        下面将简单介绍《指南》中部分规则内容,以便大家有个基本的了解。

2、记录开发人员信息
        通常,开发工程师会在网络段或者SCL的语句前面增加相关段落的说明,这个肯定是必不可少的。但还有一个重要的注释,需要工程师们注意。那就是每个块的标题栏,开发过程中重要信息必须记录在这里。为什么这么说呢?
        一般块分成两类,一类是标准块,也就是通用功能块,都是用来直接调用的。二类是用来关联、调用各种标准块的块。
        前者虽然是标准块,但也难免有程序优化、功能升级、增加报警等后期改动。那这种版本变更、人员信息的内容一定要记录清晰。还有功能介绍、调用环境、CPU要求等,也需要记录,避免出现错误调用。
        后者就是在调试过程中需要频繁更改的块,同样也需要记录修改原因、开发人员等信息。这样有助于更好地溯源,以及为今后的开发提供参考。为此,《指南》中提供了相关的模板用于编辑和保存这些内容。如图1所示。

西门子PLC模块
图 1. SCL信息模板

        当然,和其他编程语言有所不同,因为SCL模板是写在语句中,所以在块进行专有技术保护时无法显示。因此,可以把模板的内容填写到如图2所示的“块属性>信息”中,这样在不输入密码的情况下就可以看到块的各种信息,如图3所示。

西门子PLC模块
图2. 块属性信息填写

西门子PLC模块
图3. SCL加密块属性查看

3、使用库进行版本控制
        前面说到标准块,在后期可能会有程序优化、功能升级、增加报警等改动,也就是版本升级。如果只是单纯的修改程序替换程序,还不能起到版本管理,版本控制的功能。如需实现版本管理和控制,建议使用库的类型功能。
        库的类型功能,可对标准块,包括FB、FC、PLC数据类型(UDT)等进行版本控制。使用库的类型功能在每次程序变更时,能够实现对版本号的更新,支持编辑作者、注释等信息。如图4所示。

西门子PLC模块
图4. 发布类型版本

        注意:在程序块加入库的类型之前,建议将需要设置的仿真功能激活、自动编号功能、专有技术保护等设置完毕。因为一旦块加入库中,这些功能无法再次设置。
对于版本号,一般有以下要求供参考:
● 版本号格式为 x.y.z
● 起始版本为 1.0.0
● “z” 表示修复错误,功能不做修改
● “y” 表示功能进行扩展,变更时,同时对“z” 清零
● “x” 是重大变更或对以前版本不兼容的更改,变更时,同时对“y” 和 “z” 清零
● “x”、“y” 、 “z” 位于 0 - 999 之间

具体版本号变更示例,请参考下表。

西门子PLC模块

        有了这个功能,就可以方便地在项目中进行版本管理,更进一步还可以做成企业库甚至网络库进行全局共享,方便项目统一筹划。

4、处理 ENO
        如果说编一些报警程序,想必每个开发者或者公司都有相关经验,方法也是五花八门。但如果只是指令的一些报警,这个可能大家就不是很熟悉了。这里就介绍一个小技巧,可以在处理指令报警时达到事半功倍的效果。
        可能大家都注意到了,很多指令,例如数学运算、转换等,或者FC、FB中都会在右边输出端有个ENO。一般都空在那里,也没有什么影响,要不就是后面串联其他的块,仅此而已。
        其实不然,之所以感觉不到它有什么作用,是因为这个功能默认不激活,也就是ENO一直为True。但实际上我们可以激活这个功能,让ENO去判断指令或块是否执行异常。这时计算正常ENO输出True,计算异常ENO输出False。
        像指令中的计算超限、或者转换出错等都可以判断出来。此外还可以在自定义块中对ENO赋值,自行给出或判断ENO状态。
        那怎么能使得指令、块的 ENO 激活呢?
        非常简单,对于LAD/FBD中调用的基本指令,可以直接在指令的右键菜单中生成ENO,即激活ENO。如图5所示。

西门子PLC模块
图5. 生成 ENO

        如果是SCL块,或者是LAD/FBD块中SCL段调用基本指令激活ENO,则不能像图5中的方式。需要在所在块属性中激活设置,如图6所示的红框。

西门子PLC模块
图6. SCL生成ENO

        当然如果是系统指令块或者是用户块的话,只要是块内部有对ENO 进行修改,那么在调用该块的时候就可能会出现ENO = False的情况。

        下面我们看一个SCL中ENO的使用例子,如图7所示。看了这个例子您应该对ENO就有了更深一步的认识了。

西门子PLC模块
图7.ENO 示例

        上面的例子中,因为DINT的范围比INT要大,转换是可能会失败的,一旦变量num的范围超过了INT的范围,那ENO必然会输出False。

        所以利用ENO的功能,可以优化程序。

5、基于 PLCopen 模板进行编程
        前文提到《指南》的目的旨在帮助开发者能够统一编程风格,促进项目的标准化。针对标准化编程,西门子除了提供了一些规则建议以外,还提供了非常好用的编程模板。这个模板就是个编程框架,有了框架只需往里面增加工艺逻辑内容就好了。
        西门子提供的符合PLCopen标准的基于SCL编程语言的模板是通用函数库(LGF)。基于通用函数库(LGF),可以很轻松地编写出风格统一,易于阅读的FC、FB程序。通用函数库(LGF)的下载地址如下:

        英文:https://support.industry.siemens.com/cs/us/en/view/109479728

        中文:https://support.industry.siemens.com/cs/cn/zh/view/109479728

        在英文网页中可以下载到TIA Portal新版本的库。如果您的TIA Portal 版本较低,目前可以在中文页面下载到zui低V14SP1版本的库。当库加载到TIA Portal中,就可以浏览到各种模板(图中Templates文件夹),如图8所示。

西门子PLC模块
图8. 模板位置

模板从上到下包括以下几部分:
用于以下功能、功能块中诊断用的PLC数据类型(UDT)
● Enable作用的功能块:适合于连续执行的异步功能块,执行效果参考运动控制中的MC_MoveJog
● Execute作用的功能块:适合于单次执行的异步功能块,执行效果参考运动控制中的MC_MoveVelocity
● 通用的功能、功能块模板:包含初始化段、主程序段、输出控制段,输出控制一般还包含对错误位、错误代码的控制

有了这些模板,我们自己就可以搭建出符合标准化的程序块了。



本文摘自:网络



 

联系热线:18597848426   联系人:曾经理 联系地址:上海市宝山区富联一路98弄6号

技术和报价服务:星期一至星期六8:00-22:00 西门子品牌服务商