马上注册,享受更多特权
您需要 登录 才可以下载或查看,没有帐号?立即注册 ![](source/plugin/zhanmishu_wechat/template/static/img/wechat_login.png)
x
本帖最后由 y2490 于 2020-4-18 11:02 编辑
1.引言
遵循PLCOpen标准规范开发,可以提高库代码规范性,可读性,方便代码后期维护;
2.变量命名
变量命名遵循匈牙利标记法, 对于每一个变量,都需在基础名中含有有意义的简短的描述。基础命名的每个单词的首字母必须大写,其他字母小写(例如: FileSize) , 并根据变量数据类型和属性,添加合适的类型前缀和属性前缀。
![](data/attachment/album/201909/20/111920s00foho6nwo4kzpz.png)
![](data/attachment/album/201909/20/111933id4xqrdpxa0xzvqc.png)
2.功能块(Function Block)
2.1 命名方式
![](data/attachment/album/201909/20/113119n5ylkv2umilklmvi.png)
2.2 输入输出变量
![](data/attachment/album/201909/20/112958dgxffazsgsa944g9.png)
2.3 实例化
![](data/attachment/album/201909/20/113046uq8227998qc829ka.png)
![](data/attachment/album/201909/20/113050aejl2k5247tk17zh.png)
3.函数(Function)
3.1 命名方式
Function 命名采用 do+something 方式,遵循匈牙利标记法,例如:SendAbort、
SetOpMode、 ReadStatus。
3.2 输入输出变量
![](data/attachment/album/201909/20/113247hdwgovqodfdoivz3.png)
4.程序(Program)
4.1 命名方式
推荐以“PR_“+“对象描述“ 格式命名, 例如: PR_MOTION、 PR_LOGIC、
PR_DISPLAY、 PR_COMMUNICATION。
4.2 输入输出变量
![](data/attachment/album/201909/20/113430dj3y8djhclhbl7jg.png)
4.3 动作方法
动作(Action) 、 属性(Property)、转移(Transition) 命名都遵循匈牙利标记法,
方式与 Function Block 一致。
![](data/attachment/album/201909/20/113603l20flq222qeaipqf.png)
5.数据单元(DUT)
5.1 结构体
结构体类型(Struct)命名规则为“属性或类型(用途属性或功能类型)+对象描述”,
一种是字母全部大写,另一种是首字母大写,其余小写。单词之间均用下划线链接, 同一
个工程只能使用同一个风格。
内部变量命名遵循变量命名方法,为 “数据类型+功能描述。
结构体类型(Struct)实例变量遵循变量命名规则,并且带前缀“st”。
![](data/attachment/album/201909/20/113721x3eoowe625eqxaa2.png)
![](data/attachment/album/201909/20/113745w333via3o9k3z4ts.png)
![](data/attachment/album/201909/20/113755cx5tttx5uhut5ujw.png)
5.2 枚举类型
枚举类型(Enum)命名规则跟结构类型(Struct) 命名一致。 枚举类型包含的枚举值必
须全部大写,之间用下划线连接。
枚举类型实例变量遵循变量命名规则,变量前缀带“e”。
![](data/attachment/album/201909/20/113819bbfsr66s24aurq7z.png)
![](data/attachment/album/201909/20/113835jgug0g10f2cq3e5j.png)
![](data/attachment/album/201909/20/113853bcjuqzweklqjwr3c.png)
![](data/attachment/album/201909/20/113908a2il72uifs7lfffl.png)
5.3 联合体类型
联合体(Union) 命名规则跟结构类型(Struct)命名一致。 内部变量命名遵循变量命
名方法,为 “数据类型+功能描述。
联合体实例变量遵循变量命名规则,变量前缀带“u”。
![](data/attachment/album/201909/20/113941kesu4le5w66uews7.png)
![](data/attachment/album/201909/20/113956l3tt2tjtt0vag6ak.png)
6.开发指导
6.1 边沿控制
![](data/attachment/album/201909/20/114025uwif66r96efrzczz.png)
![](data/attachment/album/201909/20/114051ahnhytvvbdlqbga8.png)
![](data/attachment/album/201909/20/114112ty2zkekrayieang2.png)
6.2 电平控制
![](data/attachment/album/201909/20/114151a7q32sm5er7htcch.png)
![](data/attachment/album/201909/20/114202jv9rz99pd1qdqppu.png)
![](data/attachment/album/201909/20/114216djy0llyjkx067kk8.png)
7.编程基本准则
7.1 指导思想
![](data/attachment/album/201909/20/114309sdxrd5i1tqryjszg.png)
7.2 编程约定
![](data/attachment/album/201909/20/114324mz81f6711g779zwb.png)
7.3 设计约束
![](data/attachment/album/201909/20/114342zase3e1k28im3umi.png)
2020.01 第三方应用库OSCAT(免费开源)
OSCAT简介
Codesys及PLC硬件供应商会提供一些标准库文件,此外用户也可以通过自己动手来建立属于自己的库文件。与此同时,还有一些第三方库文件供应商也为Codesys提供扩展功能的库文件,OSCAT就是其中之一,它也是行业内比较受工程师推崇的一个供应商。
OSCAT是一个开源的自动化应用技术社区,在该社区可以找到基于IEC61131-3的帮助文档及库文件,其中涉及Codesys V2.3/V3.5的库文件。OSCAT官方网站为http://www.oscat.de/ ,用户可以直接登入该网站下载对应的library文件(附件可下载),如下图中框出部分所示。
![](data/attachment/album/202001/30/154108tngqqf696qmigcfp.png)
下载完“oscat_basic_331_codesys3.library”后,在Codesys项目中添加库,即可实现对该库文件的调用、更新和删除操作。下图为该库文件的视图,具体功能块的说明需参阅相关帮助文档。
![](data/attachment/album/202001/30/154306jnvllwl5lzavlanb.png)
2020.03 PLCopen快速实现(附功能块FB_PLCopenDemo)
---
2020.04 编程练习(截止时间:4月24日)
1.更新培训课件,PLCopen规范介绍_V1.1.1_20200418_Beta(见附件);
![](data/attachment/album/202004/18/105614cwoy7wj467iy5oav.png)
2.更新考试题目,完成后在评论区提交,当周回复。
![](data/attachment/album/202004/18/105806cmbqsyf3wie1bquy.png)
相关教程:
互联互通系列笔记(一)——概述
汇川视觉麒麟平台培训
多功能系列教程(一)——概述
伺服应用笔记(一)——概述
SV510压合专机系列教程(一)——概述
|