首页游戏攻略有型有范——如何实现 S7-1200/S7-1500 程序的规范化?

有型有范——如何实现 S7-1200/S7-1500 程序的规范化?

misa2 03-25 4次浏览 0条评论

作者:庞开航-西门子工业技术支持中心

1 官方文档来了

为称心日益增长的准则化项目需求,西门子推出了适用于SIMATIC S7-1200/S7-1500的编程风尚指南(后文简称《指南》)。

下载链接:

西门子发布《指南》的目的旨在扶助开发者能够按照统一的编程风尚、构思、习惯往设计和开发程序。从而提高程序的可读性,促进项目的准则化。《指南》也是顺应准则化的趋势,为还没有自己的开发规范,或者规范比较简单的团队指引了一个方向。并不是说《指南》中所有的规范都必须遵守,但是至少《指南》中列举出的都是很有参考价值的,值得加以重视的内容。

此外《指南》也是西门子准则化体系的一个重要组成部分。究竟是和编写代码息息相关,作为开发者也需要深进了解,做好准则化知识的储备。

《指南》将提出的要求分为规则和意见两类:

规则:有一定约束力,一般都需要遵守,对于可复用编程是必不可少的,如有违犯需要笔录在案。

意见:要求比规则低一些,意见遵守。

通过这些规则与意见的执行,能够有效地将项目规范化,有助于统一您和您的团队编程风尚,便于前期的项目治理以及后期的开发保护工作。

下面将简单介绍《指南》中部分规则内容,以便大家有个基本的了解。

2 笔录开发人员信息

通常,开发工程师会在网络段或者SCL的语句前面增加相关段落的阐明,这个肯定是必不可少的。但还有一个重要的注释,需要工程师们注重。那就是每个块的标题栏,开发过程中最重要信息必须笔录在这里。为什么这么说呢?

一般块分成两类,第一类是准则块,也就是通用功能块,都是用来直接调用的。第二类是用来关联、调用各种准则块的块。

前者虽然是准则块,但也难免有程序优化、功能升级、增加报警等后期改动。那这种版本变更、人员信息的内容一定要笔录清楚。还有功能介绍、调用环境、CPU要求等,也需要笔录,避免出现错误调用。

后者就是在调试过程中需要频繁更改的块,同样也需要笔录修改原因、开发人员等信息。这样有助于更好地溯源,以及为今后的开发提供参考。为此,《指南》中提供了相关的模板用于编辑和保存这些内容。如图1所示。

图 1. SCL信息模板

展开全文

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

图2. 块属性信息填写

图3. SCL加密块属性查看

3 使用库进行版本掌握

前面说到准则块,在后期可能会有程序优化、功能升级、增加报警等改动,也就是版本升级。假如只是单纯的修改程序替换程序,还不能起到版本治理,版本掌握的功能。如需实现版本治理和掌握,意见使用库的类型功能。

库的类型功能,可对准则块,包括FB、FC、PLC数据类型(UDT)等进行版本掌握。使用库的类型功能在每次程序变更时,能够实现对版本号的更新,支持编辑作者、注释等信息。如图4所示。

图4. 发布类型版本

注重:在程序块加进库的类型之前,意见将需要设置的仿真功能激活、自动编号功能、专有技术保护等设置完毕。因为一旦块加进库中,这些功能无法再次设置。

对于版本号,一般有以下要求供参考:

版本号格式为 x.y.z

起始版本为 1.0.0

“z” 表达修复错误,功能不做修改

“y” 表达功能进行扩展,变更时,同时对“z” 清零

“x” 是重大变更或对以前版本不兼容的更改,变更时,同时对“y” 和 “z” 清零

“x”、“y” 、 “z” 位于 0 - 999 之间

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

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

4 处理 ENO

假如说编一些报警程序,想必每个开发者或者公司都有相关体会,方法也是五花八门。但假如只是指令的一些报警,这个可能大家就不是很熟悉了。这里就介绍一个小技艺,可以在处理指令报警时达到事半功倍的效果。

可能大家都注重到了,很多指令,例如数学运算、转换等,或者FC、FB中都会在右边输出端有个ENO。一般都空在那里,也没有什么影响,要不就是后面串联其他的块,仅此而已。

其实不然,之所以感觉不到它有什么作用,是因为这个功能默认不激活,也就是ENO一直为True。但实际上我们可以激活这个功能,让ENO往推断指令或块是否执行反常。这时计算正常ENO输出True,计算反常ENO输出False。

像指令中的计算超限、或者转换出错等都可以推断出来。此外还可以在自定义块中对ENO赋值,自行给出或推断ENO状态。

那怎么能使得指令、块的 ENO 激活呢?

非常简单,对于LAD/FBD中调用的基本指令,可以直接在指令的右键菜单中生成ENO,即激活ENO。如图5所示。

图5. 生成 ENO

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

图6. SCL生成ENO

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

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

图7.ENO 示例

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

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

5 基于 PLCopen 模板进行编程

前文提到《指南》的目的旨在扶助开发者能够统一编程风尚,促进项目的准则化。针对准则化编程,西门子除了提供了一些规则意见以外,还提供了非常好用的编程模板。这个模板就是个编程框架,有了框架只需往里面增加工艺逻辑内容就好了。

西门子提供的符合PLCopen准则的基于SCL编程语言的模板是通用函数库(LGF)。基于通用函数库(LGF),可以很轻松地编写出风尚统一,易于阅读的FC、FB程序。通用函数库(LGF)的下载地址如下:

英文:

中文:

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

图8. 模板位置

模板从上到下包括以下几部分:

用于以下功能、功能块中诊断用的PLC数据类型(UDT)

Enable作用的功能块:适合于连续执行的异步功能块,执行效果参考运动掌握中的MC_MoveJog

Execute作用的功能块:适合于单次执行的异步功能块,执行效果参考运动掌握中的MC_MoveVelocity

通用的功能、功能块模板:包含初始化段、主程序段、输出掌握段,输出掌握一般还包含对错误位、错误代码的掌握

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

6 视频更直看

文字看不够,视频更直看。如需要了解关于程序设计规范的更多内容,请关注西门子1847工业学习平台的专题视频《编程指南详尽解读》。视频共10集,内容如下:1.编程指南概要与阐明;2.TIA Portal软件设置与语言设置;3.命名规则;4.通用程序编程设置注重事项;5.如何确保程序的安全性;6.程序设计指南;7.基于PLCOpen的模板;8.如何提升程序执行效率;9.测试套件上;10.测试套件下。

fc坦克大战下载
成都兴城下场比赛不对看众时尚 对手北体大中“熟人”众多 ​Nature | 非流动性蛋白URB1在核仁液-液相分别环境中要害组织作用
相关内容
发表评论

游客 回复需填写必要信息