IEC 61131-3标准编程入门

简介: IEC 61131-3标准编程入门

IEC 61131-3标准分为两个部分:公共元素和编程语言,如图

a5d6c19ae0c844cea56489b77df934c8.png

公共元素部分规范了数据类型定义与变量,给出了软件模型及其元素,并引入配置(Configuration)、资源(Resources)、任务(Tasks)和程序(Program)的概念,还规范了程序组织单元(程序、功能、功能块)和顺序功能图。


语言元素

每个PLC程序可以看做是各种语言元素的集合。IEC 61131-3标准为编程语言提供语言元素,例如,分界符、关键字、直接量和标识符。语言元素示例如

0b94bbc322a64488a6b86e2c4c2a52ce.png

分界符

分界符(Delimiter)用于分隔程序语言元素的字符或字符组合。它是专用字符,不同分界符具有不同的含义。表

e55ed6a998954d8bb29faedd3d8bccee.png

关键字

关键字(keyword)是语言元素特征化的词法单元。关键字是标准标志符。在IEC 61131-3标准中,关键字是结构声明和语句的固定符号表示法,其拼写和含义均由IEC 61131-3标准明确规定。因此,关键字不能用于用户定义的变量或其他名称,这一点与高级编程语言是一致的。

关键字不区分字母的大、小写。例如,关键字“FOR”和“for”是等价的。为了更好地进行区别,关键字通常以大写字母表示。

1bd551c4c7d34efea44b47556deb3afc.png


关键字主要包括基本数据类型的名称、标准功能名、标准功能块名、标准功能的输入参数名、标准功能块的输入和输出参数名、图形编程语言中的EN和ENO变量、指令表语言中的运算符、结构化文本语言中的语言元素、顺序功能图语言中的语言元素。


直接量

直接量用来表示常数变量的数值,其格式取决于变量的数据类型。直接量有3种基本类型。


1)数字直接量

数字直接量可以用于定义一个数值,它可以是十进制或其他进制的数。数值文字分为整数和实数。用十进制符号表示的数中,用小数点是否存在表示它是实数还是整数。通常有二进制数、八进制数、十进制数、十六进制数。为了说明数值的基,可用元素数据类型名称和“#”符号表示,但十进制的基数10#可以省略。

对十进制数值,为了表示数值的正、负,可在数值文字前添加前缀分界符。如-15、-126.83。但对数制的基(即2、8、10和16)不能添加类型前缀的分界符。因此,-8#456是错误的数据外部表示,应表示为8#-456。

布尔数据用整数0和1表示,也可用FALSE和TRUE的关键字表示。


2)字符串直接量

字符串是直接量在单引号之间的表示形式,由单字节字符串或双字节字符串组成。

单字节字符串文字由一系列通用的字节表示或′ 、英文双引号 " 、 '、英文双引号"、

、英文双引号"、与十六进制数组成。例如,‘ABC’,‘“’,‘D 7 ’等。当美元符号 D7’等。当美元符号D7’等。当美元符号用做前缀,使特殊字符能包含在一个字符串内。非印刷体的特殊字符用于显示或打印输出的格式化文本。因此,美元符号和引号本身必须用附加的前缀“”标识。双字节字符串文字由一系列通用的字节表示或由 ”标识。 双字节字符串文字由一系列通用的字节表示或由”标识。双字节字符串文字由一系列通用的字节表示或由”、英文单引号’、与十六进制数组成。它们用双引号在其前后标识。例如,“ A ”, “ ′ ”,“ 与十六进制数组成。它们用双引号在其前后标识。例如,“A”,“'”,“与十六进制数组成。它们用双引号在其前后标识。例如,“A”,“

”,“"”,“$UI8T”等。

需要注意的是单字节字符串不能用单引号开始,双字节字符串不能用双引号开始。字符串可以是空串,如“”和‘’。


9ca4667f0eb94642864517ac4d031f79.png

3)时间直接量

时间直接量用于时间、持续时间和日期的数值。

时间直接量分为两种类型:持续时间直接量和日期直接量。持续时间直接量由关键字T#或TIME#在左边界定,支持按天、小时、秒和毫秒或其他任意组合表示的持续时间数据。持续时间直接量的单位位由下画线字符分隔。允许持续时间直接量最高有效位“溢出”(overflow)。例如,持续时间值t#135m_12s是有效的,编程系统会将该时间转换成“正确”的表达,即t#2h_15m_12s。时间单位可用大写或小写字母表示。持续时间的正值和负值是允许的。时间和日期的前缀关键字如表所示,它分为长前缀和短前缀格式。不论采用长前缀格式还是短前缀格式,表示的时间和日期都是有效的。

相关文章
|
人工智能 程序员 API
Motia:程序员福音!AI智能体三语言混编,零基础秒级部署
Motia 是一款专为软件工程师设计的 AI Agent 开发框架,支持多种编程语言,提供零基础设施部署、模块化设计和内置可观测性功能,帮助开发者快速构建和部署智能体。
1382 15
Motia:程序员福音!AI智能体三语言混编,零基础秒级部署
|
资源调度 测试技术 Linux
一款接口自动化神器—开源接口测试平台Lim(Less is More)
一款接口自动化神器—开源接口测试平台Lim(Less is More)
1245 2
|
网络协议 网络架构
数据从发出到接收的细节介绍{封装与解封装}
本文将介绍了详细的封装在每一层的具体的操作,可以让大家学习到数据从发出到收到的具体过程。
|
SQL 缓存 分布式计算
SparkSQL与Hive metastore Parquet转换
Spark SQL为了更好的性能,在读写Hive metastore parquet格式的表时,会默认使用自己的Parquet SerDe,而不是采用Hive的SerDe进行序列化和反序列化
SparkSQL与Hive metastore Parquet转换
|
机器学习/深度学习 传感器 人工智能
ai在气候变化的应用
【7月更文挑战第9天】ai在气候变化的应用
584 3
|
安全 Cloud Native 测试技术
Star 3w+,向更安全、更泛化、更云原生的 Nacos3.0 演进
祝贺 Nacos 社区 Star 数突破 30000!值此时机,回顾过去的两年时间,Nacos 从 2.0.4 版本演进到了 2.4.2 版本,基本完成了当初构想的高性能、易拓展的目标,并且对产品的易用性和安全性进行了提升,同时优化了新的官网,并进行了多语言和更多生态支持。未来,Nacos 会向更安全、更泛化、更云原生的 Nacos3.0 演进。
679 130
|
监控 Linux 测试技术
【实战技巧】使用inotify实现实时文件监控
`inotify`是Linux内核提供的文件系统监控机制,用于实时捕获文件和目录的创建、删除、移动和修改等事件。通过`inotify_init`初始化,`inotify_add_watch`添加监视点,如`. IN_ACCESS`, `. IN_MODIFY`等,及`inotify_rm_watch`移除监视。示例代码展示了监听指定路径下文件修改事件,当事件发生时打印信息。使用`inotify`能高效地构建实时应用,如文件同步和日志监控,简化系统编程。
2293 123
|
机器学习/深度学习 数据格式
R1-Omni开源!多模态模型+RLVR,让各模态作用清晰可见
随着 DeepSeek R1 的推出,强化学习在大模型领域的潜力被进一步挖掘。Reinforcement Learning with Verifiable Reward (RLVR) 方法的出现,为多模态任务提供了全新的优化思路,无论是几何推理、视觉计数,还是经典图像分类和物体检测任务,RLVR 都展现出了显著优于传统监督微调(SFT)的效果。
1208 12
|
机器学习/深度学习 算法 数据可视化
Python的计算机视觉与图像处理
本文介绍了Python在计算机视觉和图像处理领域的应用,涵盖核心概念、算法原理、最佳实践及应用场景。重点讲解了OpenCV、NumPy、Pillow和Matplotlib等工具的使用,并通过代码实例展示了图像读写、处理和可视化的方法。实际应用包括自动驾驶、人脸识别、物体检测等。未来趋势涉及深度学习、边缘计算和量子计算,同时也讨论了数据不足、模型解释性和计算资源等挑战。
829 2
|
算法 数据处理
【信号处理】卡尔曼(Kalman)滤波(Matlab代码实现)
【信号处理】卡尔曼(Kalman)滤波(Matlab代码实现)
1166 0