设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
有型有范——如何实现 S7-1200/S7-1500 程序 ...
返回列表
发新帖
[西门子]
有型有范——如何实现 S7-1200/S7-1500 程序的规范化?
[复制链接]
188
|
0
|
2024-6-17 08:20:11
|
显示全部楼层
|
阅读模式
>
写在前面:
往期内容中,已经对中文版的《程序设计规范指南》有所介绍,查看及下载链接如下:
中文版《程序设计规范指南》正式上线
西门子技术专家们又对该指南做了详细的系列课程(共10集),目前已上线大半。相信大家通过视频的学习能够对编程指南有更加深刻的理解!(文末有课程链接)
作者:庞开航-西门子工业技术支持中心
1 官方文档来了
为满足日益增长的标准化项目需求,西门子推出了适用于SIMATIC S7-1200/S7-1500的编程风格指南(后文简称《指南》)。
下载链接:
https://support.industry.siemens.com/cs/cn/zh/view/109478084
西门子发布《指南》的目的旨在帮助开发者能够按照统一的编程风格、思路、习惯去设计和开发程序。从而提高程序的可读性,促进项目的标准化。《指南》也是顺应标准化的趋势,为还没有自己的开发规范,或者规范比较简单的团队指引了一个方向。并不是说《指南》中所有的规范都必须遵守,但是至少《指南》中列举出的都是很有参考价值的,值得加以重视的内容。
此外《
指南
》也是西门子标准化体系的一个重要组成部分。
毕竟是和编写代码息息相关,作为开发者也需要深入了解,做好标准化知识的储备。
《指南》将提出的要求分为
规则和建议
两类:
规则:
有一定约束力,一般都需要遵守,对于可复用编程是必不可少的,如有违背需要记录在案。
建议:
要求比规则低一些,建议遵守。
通过这些规则与建议的执行,能够有效地将项目规范化,有助于统一您和您的团队编程风格,便于前期的项目管理以及后期的开发维护工作。
下面将简单介绍《指南》中部分规则内容,以便大家有个基本的了解。
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 之间
具体版本号变更示例,请参考下表。
有了这个功能,就可以方便地在项目中进行版本管理,更进一步还可以做成企业库甚至网络库进行全局共享,方便项目统一筹划。
本周将进行两场“专家大讲堂” - 1847专家天团直播课,欢迎预约:
观看直播即可获课件PPT
与专家在线互动,答疑解惑
享直播间抽奖福利,赢1847周边奖品
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)的下载地址如下:
英文:
https://support.industry.siemens.com/cs/us/en/view/109479728
中文:
https://support.industry.siemens.com/cs/cn/zh/view/109479728
在英文网页中可以下载到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.测试套件下
扫码观看
欢迎关注西门子工业1847俱乐部公众号,获取更多原创技术内容。超燃预告 | 60场在线会议,共享西门子工业创新产品、系统应用案例和数字化应用
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
博途之友
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』