xuedong.liu 发表于 2019-4-22 16:09:40

【经验寄语】关于CoDeSys编程

本帖最后由 xuedong.liu 于 2020-3-18 09:13 编辑

(一)变量的“三步曲”:——必须遵守
1、声明变量数据类型。
——声明变量数据类型,此时变量不分配内存,就如系统所给数据类型一样。面向对象OOP,和IEC-61131-3中都允许用户自定义变量类型。

2、定义变量。
——定义变量,此时系统会根据声明,为变量分配真实的内存空间。

3、初始化变量。
——如果不进行初始化,许多机器此时内存中是随机数值,一旦使用此值,将造成不可预估的错误和风险。特别是指针,最好养成编程的良好习惯和规则,不管使用哪个控制器,而摆脱控制器的差异性造成的风险。

最后,是程序使用变量。

(二)变量的考虑
每当声明、定义和使用变量时,要考虑以下:
此变量的(1)生命期(2)作用域(3)可见性(4)存放在哪里?是堆中?还是栈中?也就是说,变量是否会暂时失去其值。或者大量的变量进栈出栈会不会影响程序运行效率?(5)变量所占字节数量,以及所用CPU类型,因为有些CPU字节是从高到低排放;有些CPU字节是从低到高排放。特别是和C语言、C++语言,或外来库进行对接时,特别要注意。一般来讲intel的X86和ARM是相反的顺序。CoDeSys也不例外,因为数据的表示不可能超出IEC-61131-3和IEEE标准。
再者,IEEE 754浮点数表示标准中已经具有明确规定,关于哪里存放有效值,哪里存放指数部分,哪里存放尾数部分,以及各占用几个字节。

(三)面向对象OOP
学习CoDeSys,一定要学习面向对象编程。
传统的结构化编程,受到的局限性比较大。面向对象的OOP编程,灵活的同时,也给初学者带来了困惑。尽管不谈 封装、继承、虚态等概念。但实际应用是可以把这些概念和好的理念加以功能的实际应用的。
大家都知道,数组和指针是编程的有效利器。传统的程序只是代码,而自动化的CoDeSys编程,既涉及编程;又涉及和硬件打交道。组织好程序就显得非常必要。

比如说,当在调试时、维修维善时、更换了传感器时、需要修改量程时。或由于硬接线的改变,需要改变某个对应的输出端口时。这些和硬件打交道的程序片段,如果散落在各个程序中,修改了这里,忘了那里。
或者,由于工程周期很长,或经过一段时期,有多个工程维护,或由于人员变动。前去现场维护的工程师不一定是当时编制程序的工程师。如果程序散落,没有合理的构造,会造成何种情况不言而喻。

大家都知道,系统中有线程、进程之分,尽管我们不需要考虑线程的互斥、或同步,但计算机系统都有这个机制,程序也都按照这个去运行。不需要知道不代表不存在。俗话说“世上无伦外之人,也就无伦外教育”。同理,业界无伦外技术,也就无伦外应用。
结构化程序可以不考虑这些。但对于面向对象OOP,就需要考虑这些,以及任务的优先级,因为任务中会产生采集数据和执行程序、功能块等。
如果在多个程序间、功能块间、任务之间,共用一个全局变量的话,或当做消息传递的话。更要注意这个特性。
以上这些场景,实际就是OOP在CoDeSys自动化中的呈现,不要被名词术语而左右。

建议大家:
凡是和硬件采集打交道的程序、功能块、代码等,都尽可能的保持唯一性,留出输入和输出接口,以供传递参数和调用。避免多处修改变量值,造成程序错误,这种错误比较难发现和寻找。特别是指针。
还有一个是。可见性,要尽可能的小,而不是为了图省事,放宽起范围。范围宽了,也就意味着可能被误修改、误使用的范围扩大。
面向对象编程,合理的组织程序,以及策略机制,在CoDeSys变成中很重要。传统的PLC程序员往往意识不到这点。


(四)遵循语言本质
CoDeSys是语言——不忘“初心”(遵循语言的根本)
1、不做“新华字典”。
2、语法和编程技巧,只是“副产物”,或者说“只是过程的产物”。——不能“陷进去”。进去还要出来——看山是山;看山不是山;看山还是山。
3、“问题”充斥着这个世界,所有的学习是为了“解决问题”。
4、知识和技术需要学习,但目的是:解决问题——才是主要的“目标”。
5、不能“作茧自缚”。——行进路上,路边的风景很美丽——要学会“视而不见和放弃”。
6、要充分理解:编程的层次“突破”。初级技巧;中级算法;高级思想。CoDeSys是面向对象OOP的编程,要摆脱“结构化”的编程思想,取得“突破”。
7、只有适用的才是最好的;只有能够解决问题的才是最好的。
8、粮食和水,最为平常,往往被忽略掉和浪费——生命的源泉。但每时每刻,每个人都离不开——不管贫富与贵贱。一个程序员,一定要找到编程中的“粮食和水”,认识到其重要性!追求花哨的技巧,失去了程序的“鲁棒性”。最终会害了自己。

【IEC61131标准对应的中华人民共和国国家GB标准】
现行在用国家标准:
GB/T 15969.3-2017   可编程序控制器 第3部分:编程语言
GB/T 15969.6-2015   可编程序控制器 第6部分:功能安全
GB/T 15969.2-2008   可编程序控制器 第2部分: 设备要求和测试
GB/T 15969.7-2008可编程序控制器 第7部分:模糊控制编程
GB/T 15969.1-2007   可编程序控制器 第1部分:通用信息
GB/T 15969.4-2007可编程序控制器 第4部分:用户导则
GB/T 15969.8-2007   可编程序控制器 第8部分:编程语言的应用和实现导则
GB/T 15969.5-2002   可编程序控制器 第5部分:通信
已经废止的国家标准:
GB/T 15969.3-2005   可编程序控制器 第3部分:编程语言
GB/T 15969.1-1995可编程序控制器 第1部分:通用信息
GB/T 15969.3-1995可编程序控制器 第3部分: 编程语言
GB/T 15969.4-1995可编程序控制器 第4部分:用户导则
有关【IEC-61499】编程标准的一句话介绍:
实际上,除了IEC-61131标准外,进一步的IEC还制定了IEC-61499标准。此标准在欧洲工业现场实际在使用,在中国没能推广开来。其已经摆脱了代码编程,而把重点和工作中心放在了策略、结构、全局的布控和系统构造上。


(五)逻辑图真的很重要
有关PLC、PAC的逻辑框图
PLC、PAC编程,一定要画“逻辑框图”。目前几乎见不到有PLC、PAC编程者去画“逻辑框图”。
PLC、PAC的逻辑框图和高级语言的逻辑框图具有差别。要根据生产工艺,把所有逻辑关系表达的清清楚楚,即使一个蓝领工人,只要给他逻辑框图,就可以按照此图进行编写PLC和PAC程序。PLC、PAC的逻辑框图需要表达到此地步。




xuedong.liu 发表于 2019-4-23 10:25:25

本帖最后由 xuedong.liu 于 2020-3-18 09:12 编辑

CoDeSys是语言——不忘“初心”(遵循语言的根本)
1、不做“新华字典”。
2、语法和编程技巧,只是“副产物”,或者说“只是过程的产物”。——不能“陷进去”。进去还要出来——看山是山;看山不是山;看山还是山。
3、“问题”充斥着这个世界,所有的学习是为了“解决问题”。
4、知识和技术需要学习,但目的是:解决问题——才是主要的“目标”。
5、不能“作茧自缚”。——行进路上,路边的风景很美丽——要学会“视而不见和放弃”。
6、要充分理解:编程的层次“突破”。初级技巧;中级算法;高级思想。CoDeSys是面向对象OOP的编程,要摆脱“结构化”的编程思想,取得“突破”。
7、只有适用的才是最好的;只有能够解决问题的才是最好的。
8、粮食和水,最为平常,往往被忽略掉和浪费——生命的源泉。但每时每刻,每个人都离不开——不管贫富与贵贱。一个程序员,一定要找到编程中的“粮食和水”,认识到其重要性!追求花哨的技巧,失去了程序的“鲁棒性”。最终会害了自己。

【IEC61131标准对应的中华人民共和国国家GB标准】
现行在用国家标准:
GB/T 15969.3-2017   可编程序控制器 第3部分:编程语言
GB/T 15969.6-2015   可编程序控制器 第6部分:功能安全
GB/T 15969.2-2008   可编程序控制器 第2部分: 设备要求和测试
GB/T 15969.7-2008可编程序控制器 第7部分:模糊控制编程
GB/T 15969.1-2007   可编程序控制器 第1部分:通用信息
GB/T 15969.4-2007可编程序控制器 第4部分:用户导则
GB/T 15969.8-2007   可编程序控制器 第8部分:编程语言的应用和实现导则
GB/T 15969.5-2002   可编程序控制器 第5部分:通信
已经废止的国家标准:
GB/T 15969.3-2005   可编程序控制器 第3部分:编程语言
GB/T 15969.1-1995可编程序控制器 第1部分:通用信息
GB/T 15969.3-1995可编程序控制器 第3部分: 编程语言
GB/T 15969.4-1995可编程序控制器 第4部分:用户导则
有关【IEC-61499】编程标准的一句话介绍:
实际上,除了IEC-61131标准外,进一步的IEC还制定了IEC-61499标准。此标准在欧洲工业现场实际在使用,在中国没能推广开来。其已经摆脱了代码编程,而把重点和工作中心放在了策略、结构、全局的布控和系统构造上。


xuedong.liu 发表于 2019-5-5 11:29:11

本帖最后由 xuedong.liu 于 2019-5-5 15:24 编辑

有关PLC、PAC的逻辑框图

PLC、PAC编程,一定要画“逻辑框图”。目前几乎见不到有PLC、PAC编程者去画“逻辑框图”。

PLC、PAC的逻辑框图和高级语言的逻辑框图具有差别。要根据生产工艺,把所有逻辑关系表达的清清楚楚,即使一个蓝领工人,只要给他逻辑框图,就可以按照此图进行编写PLC和PAC程序。PLC、PAC的逻辑框图需要表达到此地步。

xuedong.liu 发表于 2019-5-7 11:28:01

本帖最后由 xuedong.liu 于 2019-5-7 15:14 编辑

有关【功能块】学习
请按照如下几部分去记忆和学习功能块,这样比较扎实,可以避免将来编程时造成失误。

1、      功能块功能描述
2、      功能块输入
      特殊输入,例如“使能”端。
3、      功能块输出
      特殊输出
4、      功能块工作机制
5、      功能块时序图
6、      使用时注意事项

顺便推荐一本书给大家《写给程序员的数据挖掘实践指南》
作者: [美]扎哈尔斯基
版权方: 人民邮电出版社 简介       数据挖掘一般是指从大量的数据中通过算法搜索隐藏于其中信息的过程。大多数数据挖掘的教材都专注于介绍理论基础,因而往往难以理解和学习。
      本书是介绍写给程序员的一本数据挖掘指南,可以帮助读者动手实践进行数据挖掘、集体智慧并构建推荐系统。全书共8章,介绍了数据挖掘的基本知识和理论、协同过滤、内容过滤及分类、算法评估、朴素贝叶斯、非结构化文本分类以及聚类等内容。全书采用做中学的方式,用生动的图示、大量的表格、简明的公式,实用的Python代码示例,阐释数据挖掘的知识和技能。每章还给出了习题和练习,帮助读者巩固所学的知识。

以下为CoDeSys帮助文件





xiesh 发表于 2019-5-9 19:23:18

深度覆盖深度覆盖深度覆盖深度覆盖

行天 发表于 2019-5-10 23:45:09

这么多包,俺得拼命挣积分啊,能烤炉下俺们穷人打包啊

lig_mot 发表于 2019-5-17 22:08:38

学习1!!!!!!!

极限尺度 发表于 2019-6-27 18:23:01

你这抢钱

harryren 发表于 2019-7-9 18:51:02

骗人的,打开后只有目录

xuedong.liu 发表于 2019-7-12 08:22:59

本帖最后由 xuedong.liu 于 2019-7-12 08:25 编辑

文档都打开测试过,是CHM格式,如果只有目录,请检查自己的操作系统设置。
需要哪个下载哪个,不要好奇,什么都下载下来储备着。
我压缩后,传不上去,文件太大。希望大家谅解。
页: [1] 2
查看完整版本: 【经验寄语】关于CoDeSys编程