IEC 61131-3 PLCopen 实战应用:慎重声明变量

好的开始是成功的一半,对于成功的程序编写来说,良好的变量声明也是如此。
刚接触IEC61131-3时,我被PLCopen能实现的强大功能块所吸引。例如多轴插补MC运动控制功能块,用CFC语言能够轻松编写出可移植的标准CNC控制程序,并且还做出了能够实时在线修改DIN66025(G代码)编程语言的应用,曾一度自以为掌握地挺深入。
其实不然,我之前忽视考虑一个最基本的问题,那就是为什么IEC61131-3规定我们这样进行变量声明?例如: A AT %QX0.0 : BOOL; B AT %IX0.0 : BOOL; C AT %MX0.0 : BOOL;
IEC61131-3平台俗称软PLC。之所以叫软PLC,我个人的理解是,因为它有一个计算机芯片内核,因此编程语言与程序执行方式和计算机软件工程非常相似;但它的外围电路又是典型的PLC布局,因此程序中的变量必须要绑定到芯片外的物理地址上,才能使机器真正运动起来,否则我们编写的程序段只能在芯片内部空运转。%Q、%I、%M都算物理地址。
因此,用惯了硬PLC的人,刚开始写软PLC程序时,会把中间变量与%M联想在一起,恨不得把所有的虚拟变量都AT到%Q%I%M上才安心。
这可能会带来很多问题,例如:
1、当XML、SYM、CSV等标识符文件在不同的IEC61131-3设备之间传递进行虚拟计算时,比如说在PLC与HMI之间交换变量,编译在文件里的物理地址%Q%I%M能得到及时响应么?
2、当RETAIN数据区里定义的变量绑定到了AT %M*.*,那么当软PLC断电重启后,这批数据很可能是保存不住的。
因此,我们在实际项目中,做变量声明时,要慎重。我的想法是,先尽量不绑定物理地址,甚至可以考虑专门编写一个数据交换程序,专门进行虚拟变量与物理变量的对接,而不是直接绑定。
此外,当局部与全局里存在一个同名变量时,编译不报错,但是在线观察,我们会发现局部的变量有效触发,而全局的那个同名变量会没反应。因此,我的想法是尽量别在局部定义过多的变量。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: IEC 61131-3是国际电工委员会制定的一项标准,用于规范可编程逻辑控制器(PLC)的编程语言和功能块库。PLCopen则是一个由PLC制造商和用户组成的国际组织,旨在推广和促进PLC技术的标准化和互操作性。 IEC 61131-3定义了五种标准的PLC编程语言,包括梯形图(LD)、指令表(IL)、功能块图(FBD)、结构化文本(ST)和顺序功能图(SFC)。这些语言提供了丰富的编程方法和结构,可以根据不同的应用需求灵活使用。 PLCopen是一个与IEC 61131-3相互关联的组织。它通过制定标准化的功能块库,提供了一种跨不同PLC品牌和型号的PLC程序开发方法。这些功能块库包括通用功能块、通信功能块、运动控制功能块等,可以简化PLC程序的开发和维护工作,并增强不同PLC系统之间的兼容性和互操作性。 IEC 61131-3和PLCopen的结合使得PLC编程变得更加标准化和规范化。PLC开发者可以基于IEC 61131-3定义的编程语言和PLCopen提供的功能块库,进行跨平台的PLC程序开发,并充分利用不同PLC系统之间的共同特性和功能。这样一来,PLC应用开发的效率得以提高,同时也降低了PLC系统之间的兼容性和迁移性的问题。 总的来说,IEC 61131-3和PLCopen的结合为PLC技术的发展提供了一种统一的编程和开发标准,推动了各种PLC系统之间的互操作性和兼容性,使得PLC应用的开发更加方便和高效。 ### 回答2: IEC 61131-3是一个国际标准,用于定义和规范可编程逻辑控制器(PLC)编程语言的统一标准和操作方式。它旨在为PLC编程提供一种统一的方法,并确保不同品牌或厂商的PLC之间的互操作性。 IEC 61131-3标准定义了五种主要的PLC编程语言:梯形图(Ladder Diagram,简称LD)、功能块图(Function Block Diagram,简称FBD)、指令表(Instruction List,简称IL)、结构化文本(Structured Text,简称ST)和顺序功能图(Sequential Function Chart,简称SFC)。这些语言各有其特点和应用领域,使用者可以根据具体的项目需求选择合适的语言进行编程。 PLCopen则是一个非营利组织,致力于在自动化领域推广和促进PLC编程标准化和开放性。其目标是为PLC编程提供一个开放的环境,使不同品牌或厂商的PLC能够轻松互联和交流。 PLCopen的工作主要包括制定和推广PLC编程规范、提供相关的培训和认证服务、支持标准软件开发工具和环境等。通过PLCopen,用户可以享受到更多的选择、更好的互操作性和更高的编程效率。 总之,IEC 61131-3和PLCopen都是为了推动PLC编程标准化和开放性的努力。IEC 61131-3提供了统一的PLC编程语言标准,而PLCopen则通过推广标准和提供支持服务,为用户提供更多的选择和更好的互操作性。这些努力都旨在提高PLC编程的效率和质量,促进自动化领域的发展。 ### 回答3: IEC 61131-3是一种用于编程可编程逻辑控制器(PLC)的国际标准。它定义了一种基于文本和图形编程编辑环境的编程语言,包括梯度图(LD)、指令列表(IL)、功能块图(FBD)、结构化文本(ST)和顺序功能图(SFC)。这样的编程语言使程序员能够对PLC进行灵活和有结构的编程。 PLCopen是一个协会,致力于推广和支持全球PLC应用的标准化和规范。该组织与IEC 61131-3紧密合作,通过定义一些标准函数块和方法,为PLC编程提供一致性和兼容性。PLCopen提供了一系列可重用的软件组件,这些组件可在不同的PLC品牌和型号之间进行交换和共享。这为PLC开发人员提供了更大的灵活性和可移植性。 IEC 61131-3与PLCopen之间存在密切的关联。IEC 61131-3定义了一种通用的PLC编程语言规范,而PLCopen则建立在这个规范之上,提供了更具体的指导和工具。PLCopen基于IEC 61131-3的编程语言,提供了一种统一的方法来编写具有可移植性的PLC程序。通过使用PLCopen的标准函数块和方法,开发人员可以更容易地在不同的PLC系统之间进行代码重用和迁移。 总的来说,IEC 61131-3是一个标准,它规定了PLC编程语言的基本结构和语法。PLCopen是一个组织,它建立在这个标准之上,提供了一系列标准函数块和方法,使PLC开发更加简化和标准化。IEC 61131-3和PLCopen的结合为PLC开发人员提供了一种易于使用和可移植的编程环境,促进了PLC应用的发展和应用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值