锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

hive编程指南电子版_善用EXCEL,高效PLC编程,你怎么看?

时间:2022-07-11 08:00:00 伺服注塑机压力传感器

116d1b5354f867fbf79042fa82d6ba8a.png

上次看了邓李老师的文章《邓李:如何编写高质量的邓李:PLC/PAC程序?》有点感觉。工作快20年了,写了一些程序,大部分都和机器有关。记得本科毕业设计是用来设计的。VB 数据采集卡上写着拖拉机发动机喷油器的弹簧试验,硕士课题使用C在Linux我做了一些代码,毕业后在海天继续和师傅在一起Linux下用C和QT堆放注塑机的控制器。

01 第一次接触PLC,它在海天公司为双色注塑机增加了一个转轴功能。注塑机的计算机上没有这个功能,所以增加了一个PLC,记得当时用的是三菱FX,这是我第一次接触PLC,当时,供应商提供了供应商PLC、伺服电机、减速器和其他产品,所以程序是由供应商编写的。到达倍福后,因为整个办公室只有我一个人,处于一切的状态,所以除了销售工作,也做技术支持。我记得第一个项目是上海同事写的代码。我的同事来现场一次,我接管了后面的维护。幸运的是,幸运的是,第一个项目是上海同事写的代码。TwinCAT这个软件比较简单,一来二去就开始了。后来慢慢给客户写了一点DEMO,向客户解释为什么IEC61131-3是一件简单的事情,没有想象的那么难,不要想到ST语言想到高级语言,等等。写作,也有一些经验。在谈论这些经历之前,先说一些题外话。 我做了两个与我的工作无关的学习。一个是研究生,一个培训班来学校推广ISO内审员的培训,当时因为好奇报名,花了几百块钱听了一堆ISO我记得一位老干部在讲课。另一次,当我第一次上班时,我报名参加了一名高级计算机程序员的考试。读了几个月的书后,我离通过线有点远(不是一个小点)。但 这两件事对我影响很大 ,ISO学习,让我明白一切都要有流程,流程要有标准,标准要有数据,数据要追溯,这就是后来对工业4的理解.0奠定了基础,高级程序员的考试让我学到了很多IT的知识,尤其是软件工程方面的知识,对于构建一个大的程序,还是有帮助的。下面的心得,和这两件事情,有比较大的关系,说穿了,就是 多做纸面工作 02 在写代码之前,我会先建一个EXCEL大约有几个表格。(这里我虚拟了一个立体车库项目,因为每天去办公室都要处理立体车库): 1、IO表,输入输出出的模块模型、模块的位置、每个模块上每个点的定义以及外部连接的组件。对于一些电气CAD本表将自动生成软件,但我们仍然建议使用它EXCEL为了存档,做一份。 7a60a7cc13b2103a7e9f0b3a4d72f86d.png 2、变量表,有些变量有地址,比如上面提到的IO对应表,例如Modbus通讯。Modbus通信需要定义变量地址,IO只要在系统配置中与硬件连接,相应的不需要在程序中指定。另一部分变量没有地址,但不能随意定义。为了阅读,应该有一定的规则。 3cc5c4c9d755694c8ad5d53e039a5c36.png 3、结构体(Structure),结构体的设计,可以放在变量表之前,为了提高效率,我们会设计一些结构体来做数据类型,比如一个气缸,就可以设计一个结构体来表述,这个结构体会包含气缸的方向,磁性开关状态,以及两个方向的超时报警时间。在使用到气缸时,就可以用这个结构体类型来直接定义气缸,而无需去定义每个气缸设计的变量。

fb26d9a6de22054742b08f969e464b98.png

如有必要,可设计枚举变量来表达机器的状态。4. POU名称(Program Organization Unit程序组织单元)。POU程序有三种类型(Program)、功能块(Function Block)、函数(Function)。在规划阶段,程序和功能块的构建非常重要。功能块将减少大量的重复工作,以避免一些常见的错误(当然,错误是错误的)。程序调用和状态切换是否清晰可控,决定了整个项目是否足够强大,可以持续改进和维护。a2be02567015662070fb3e20d3a40ffe.png 5、 工艺说明,包括每个工作步骤、步骤连接、条件转换等。这一步可以在EXCEL中做,也可以用word、PPT,但相比之下,EXCEL可能是更好的选择,因为EXCEL纸的大小没有限制,word和PPT很容易遇到编辑范围太小的问题。 1466ca3f5704caa6fb529beeadd0c409.png 当然也可以在纸上画。个人建议每个项目都准备一个。A4的本子,和EXCEL配合使用。完成此表格后,我习惯于将变量表直接复制到TwinCAT中,因为 在EXCEL在许多重复工作中,可以直接选择表单元进行拖拉复制 ,(* ”和“*),和末尾;,直接复制单元格,对于一些带序号的变量,如X0-X7.可以按顺序复制,降低工作量,降低变量编写错误的概率。在编程过程中,除了用于编程外for除了用于调试的累加数和一些标志外,如果要添加具有实际意义的变量名,必须先添加EXCEL添加,然后复制到程序中。这有点强迫症,但事实证明下一步是建立每一个POU,对于功能块,要写输入变量和输出变量,函数只需要参数。写完每一个POU,记得在每个POU的主体敲个";",这样,即使我们不写代码,我们也可以通过编译。如果此时编译失败,您可以查看是否有错误的手,因为此时错误的地方是系统保留的单词,或忘记敲击";",注释的括号少了之类。 edb76bb71104dba48bc238666a109d72.png 接下来是写代码吗?不,是 先写注释,而且是全面注释,即在每个功能块中,先写注释。TwinCAT在中间,一个程序块只需要一个;";",所以不要担心没有代码会导致程序无法编译。 fac1dac0d7b84730098d2cd34ddc0a7a.png 我们回到前面的第四点。如果绘制了流程图,我们将将流程图转移到编程环境中,或者按照从大到小的原则。我们首先编制步骤。每一步的具体做法可能远不如步骤之间的切换和连接重要。因此,在这个过程中,我们也可以用注释代替代码,但不要忘记在各种方面for、case添加;。最后一步,让我们在所有注释的地方写代码。然后,编译。如果有人能把它放进去PackML再看一遍文档,你会发现里面有关于状态切换的图表。如果你感兴趣,你可以找到它PackML文档f7a85d94a029a07244e00acb24759818.png 如果你用的是TwinCAT或者Codesys我建议写环境EXCEL在绘制表格和流程图时,还绘制了人机界面的草图。我认为集成人机界面的开发环境是自动化工程师的救世主 。人机界面和PLC在同一环境中,这意味着工程师可以随时看到他们想看到的东西。例如,在调试过程中,他们需要看到多个变量,这将更方便地构建在人机界面上,而无需在程序中在线观察。 人机界面和PLC除了大大提高自动化工程师的程师的幸福感,也极大地激发了自动化工程师的创作欲望。比如有些DEMO,我会把逻辑动作的条件和输出状态放在图片中,这样我就可以清楚地看到逻辑动作没有执行的原因,比如一些动作,然后做一个定时器或多个定时器,把这些定时器的输出放在同一张图片中,你就可以清楚地看到秋天。在完成程序后,机器也移动了,我们将制作另一个表,即 修改记录,在这张表中,我们写道,为什么,我们改变了哪个程序,如何改变,修改后如何测试,测试效果如何。修改后的程序,不建议直接更改原程序,可以建立一个新的程序POU,也可以在POU写一个新的action,在相应的调用处更改调用名称。这样,即使新程序有问题,也很容易修改(RollBack)到原始程序。在新代码中,记得在头部写注释。 03 到目前为止,让我们回顾一下我们得到了什么好处:
我们有一个清晰的名称列表,包括变量,IO的、程序的 2、我们有了一个清晰的结构 3、所有的问题会有据可查。
上面这几点是针对程序本身的益处,而对于项目和企业而言,则有更大的意义:

1、通过分解,将代码部分的工作量比例降低了,这种逐步聚焦的方式,可以让工程师把精力放在最关键的地方。

2、便于沟通,在代码之前的这些工作,都可以和其他人共享,比如IO表部分可以和电气工程师以及电工沟通,程序流程部分可以用来和工艺工程师沟通。

3、便于维护,在移交给其他工程师,或者多人开发同一项目时会方便很多。如果没有注释,基本上工程师自己都会忘记原来写的什么。

4、便于更换平台,当需要更换一个控制器平台时,会发现,大部分工作是相通共用的,这会在切换平台时节约大量的时间。

本文用了一些IEC61131-3的概念,关于IEC61131-3的书很少,推荐彭瑜老师和何衍庆老师的那本 《IEC61131-3编程语言及应用基础》,机械工业出版社出版,这本书我买了应该不下三十本,用来送人。记得在倍福10周年庆典那天,公司邀请了彭瑜老师,恰好庆典在人民广场附近举办,席间跑步前进到福州路的上海书城,居然买到了那本《IEC61131-3编程语言及应用基础》,请彭瑜老师签了个名,留作纪念。 另外推荐林锐博士写的 《高质量程序设计指南 C++/C语言》,这本书有人不喜欢,觉得这本书水份太多,干货太少,但读起来还是比较轻松的,这本书出到了第三版,目前在网上有很多二手的在销售,也有一些电子版的,建议找来读一读。 后记 写这篇文章的原因,一方面是看了邓李老师的文章,也想谈谈自己的心得,另一方面,也是看到随着工业4.0的普及,以及我国OEM制造业正在向高端发展,PLC程序方面,也慢慢向IT方向发展。 相比于PC或者网络软件,自动化程序有几个特点:
1、使用对象比较窄,这造成了对程序的质量要求、功能要求都不是太高,机器能开就行。 2、代码量小,因为1的原因,以及机器本身的特性,PLC的代码量是很小的。 3、协作性很低,很多公司只有一个自动化工程师负责PLC程序,而且对程序质量要求很低,只要求机器能跑。
这些特点,造成了自动化行业,尤其是离散自动化行业,对于代码的质量基本是没有要求的。我记得大学时候买过一本《软件工程》的书,开头有个例子,是一个科幻电影里的飞船计算机艾尔出了软件故障的故事,随着现在机械设备制造业的发展,机器的销售越来越多,客户的需求也变得越来越定制化,这种软件的故障,在将来会慢慢出现,如何应对这个事情,唯一的道路,只能是从计算机行业去借一些经验来。 我作为一个销售来写这个文章,会有很多漏洞,但还是期望我的文字可以引起自动化工程师的共鸣,起到抛砖引玉的作用,大家一起为未来做些事情。

作者简介

周舟,硕士,2003年毕业于河南科技大学,师从张洛平教授,2001年开始接触PC控制和运动控制,先后就职于海天集团、施耐德电气、倍福自动化,宁波致迪自动化,以技术人员和市场人员的身份经历了浙江机械制造的重要发展阶段。

来源/工控百家谈

文章推荐

【原创分享】设备改造案例:S7-200PLC与横河DCS系统的通讯实现【原创分享】M200 PLC和昆仑通泰触摸屏的连接和仿真【原创分享】利用PLC消除高炉煤气余压透平发电装置的安全生产隐患【原创分享】三菱Q系列和FX2N系列进行CC-Link通讯(主站和智能设备站的通讯)【原创分享】西门子PLC电路高效设计2——快速进行PLC地址编码及原理图建立【原创分享】西门子PLC电路图高效设计——基于EPLAN与TIA Selection【原创分享】三菱FX5U系列PLC和西门子MM420系列变频器实现USS协议串口通信【原创分享】谈谈国产化压传感器的艰难发展之路【原创征集】工控技术牛人的成长之路,都有过这些时刻!【原创分享】从新的角度解读经典的PID控制器【原创分享】PLC梯形图编程很low?那你一定要看看PLC梯形图的由来了【原创分享】WINCC7.3和1200如何建立OPC通讯?

我知道你“在看”哟~

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章