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。时间单位可用大写或小写字母表示。持续时间的正值和负值是允许的。时间和日期的前缀关键字如表所示,它分为长前缀和短前缀格式。不论采用长前缀格式还是短前缀格式,表示的时间和日期都是有效的。

相关文章
|
并行计算 Ubuntu Docker
apollo快速入门之安装指南
apollo快速入门之安装指南
511 3
|
资源调度 测试技术 Linux
一款接口自动化神器—开源接口测试平台Lim(Less is More)
一款接口自动化神器—开源接口测试平台Lim(Less is More)
1036 2
|
网络协议 网络架构
数据从发出到接收的细节介绍{封装与解封装}
本文将介绍了详细的封装在每一层的具体的操作,可以让大家学习到数据从发出到收到的具体过程。
|
机器学习/深度学习 数据采集 人工智能
大模型升级与设计之道:ChatGLM、LLAMA、Baichuan及LLM结构解析(上)
大模型升级与设计之道:ChatGLM、LLAMA、Baichuan及LLM结构解析(上)
1797 0
|
存储 人工智能 搜索推荐
Shandu:开源AI研究黑科技!自动挖掘多层级信息,智能生成结构化报告
Shandu 是一款开源的 AI 研究自动化工具,结合 LangChain 和 LangGraph 技术,能够自动化地进行多层次信息挖掘和分析,生成结构化的研究报告,适用于学术研究、市场分析和技术探索等多种场景。
1047 8
Shandu:开源AI研究黑科技!自动挖掘多层级信息,智能生成结构化报告
|
人工智能 程序员 API
Motia:程序员福音!AI智能体三语言混编,零基础秒级部署
Motia 是一款专为软件工程师设计的 AI Agent 开发框架,支持多种编程语言,提供零基础设施部署、模块化设计和内置可观测性功能,帮助开发者快速构建和部署智能体。
1167 15
Motia:程序员福音!AI智能体三语言混编,零基础秒级部署
|
机器学习/深度学习 传感器 人工智能
ai在气候变化的应用
【7月更文挑战第9天】ai在气候变化的应用
492 3
|
安全 Cloud Native 测试技术
Star 3w+,向更安全、更泛化、更云原生的 Nacos3.0 演进
祝贺 Nacos 社区 Star 数突破 30000!值此时机,回顾过去的两年时间,Nacos 从 2.0.4 版本演进到了 2.4.2 版本,基本完成了当初构想的高性能、易拓展的目标,并且对产品的易用性和安全性进行了提升,同时优化了新的官网,并进行了多语言和更多生态支持。未来,Nacos 会向更安全、更泛化、更云原生的 Nacos3.0 演进。
502 115
|
JSON JavaScript 前端开发
怎么安装JSON服务器?JSON服务器最新安装教程
JSON Server是一款轻量级工具,基于Node.js运行,可通过单个JSON文件快速模拟RESTful API,适用于开发与测试场景。其支持CRUD操作、自定义路由及高级功能如排序、搜索、分页等,同时允许通过中间件扩展功能。为确保安全性,建议在受控环境中使用,并避免处理敏感数据。此外,还有Mirage JS、Mockoon、WireMock和Postman等替代方案,可根据项目需求选择合适的工具。
473 0
|
算法 数据处理
【信号处理】卡尔曼(Kalman)滤波(Matlab代码实现)
【信号处理】卡尔曼(Kalman)滤波(Matlab代码实现)
1002 0