汇川技术|PLC地址空间、结构化文本语言ST

哈喽,你好啊,我是雷工!
日拱一卒,进一寸有进一寸的欢喜。
本节了解汇川PLC的地址空间与结构化文本语言相关内容。
以下为学习笔记。

01 PLC的地址空间

汇川PLC不同型号的PLC提供的直接存储空间是不同的,
在PLC数据中,%I、%Q区地址不能掉电保存,%M区可以掉电保存。
汇川PLC存储区域定义及使用的地址范围表:

|---------------------------------|------------------|--------|------------|---------------------|
| 编程系统 | 区域 | 用途 | 大小 | 地址范围 |
| AM600、AM610、AM401、AM402、AC800系列 | 输入区I区(%I) 128KB | 用户使用区域 | 64KWords | %IW0-%IW65535 |
| AM600、AM610、AM401、AM402、AC800系列 | 输出区域Q区(%Q) 128KB | 用户使用区域 | 64KWords | %QW0-%QW65535 |
| AM600、AM610、AM401、AM402 | 存储区域M区(%M)512KB | 用户使用区域 | 240KWords | %MW0-%MW245759 |
| AM600、AM610、AM401、AM402 | 存储区域M区(%M)512KB | SD元件 | 10000Words | %MW245760-%MW255759 |
| AM600、AM610、AM401、AM402 | 存储区域M区(%M)512KB | SM元件 | 10000Bytes | %MW511520-%MW521519 |
| AM600、AM610、AM401、AM402 | 存储区域M区(%M)512KB | 保留 | 2768Bytes | %MW521520-%MW524287 |
| AC800系列 | 存储区域M区(%M)5MB | 用户使用区域 | 2.5MWords | %MW0-%MW2321439 |

注意事项:
①:其中用作软元件(SD元件、SM元件)的区域用户不要直接使用。
②:用途为用户使用区域的地址区,用户可以直接访问地址,也可以定义变量后把变量映射到地址间接访问。
③:AC800系列不支持SD和SM软元件,存储区域的地址可以随意使用。

02 结构化文本语言

概述:结构化文本是一种文本化的高级语言,跟PASCAL或C语言差不多,程序代码由指令组成,指令由关键字和表达式构成。
与IL语言不同的是,ST语言在语句循环中可以包含众多的语句,因此允许开发复杂的程序结构。
ST语言常见操作符见下表:

|----|--------|-----------------|
| 序号 | 操作 | 符号 |
| 1 | 括号 | (表达式) |
| 2 | 函数调用 | 函数名(参数列表,由逗号分割) |
| 3 | 求幂 | EXPT |
| 4 | 求负值 求补 | - NOT |
| 5 | 乘 除 取余 | * / MOD |
| 6 | 加 减 | + - |
| 7 | 比较 | <,>,<=,>= |
| 8 | 等于 不等于 | = <> |
| 9 | 逻辑与 | AND |
| 10 | 逻辑异或 | XOR |
| 11 | 逻辑或 | OR |

注意:操作符具有优先级,按表格从上向下依次降低。
整个ST文本程序由指令构成,指令由分号";"分割(这点和C#挺像,末尾加";")。
指令由关键字和表达式组成。

|----|----------|-------------|-------------------------------------------------------------------------------------------------|
| 序号 | 关键字 | 说明 | 示例 |
| 1 | :=,S=,R= | 赋值,置位,复位 | A:=B; C:=SIN(X); b1 R=cond1; |
| 2 | | 功能块调用和输出 | CMD_TMR(IN := %IX5, PT := 300); A:=CMD_TMR.Q |
| 3 | RETURN | 返回(退出当前POU) | RETURN; |
| 4 | IF | 选择 | D:=B*B; IF D<0.0 THEN C:=A; ELSIF D=0.0 THEN C:=B; ELSE C:=D; END_IF; |
| 5 | CASE | 多重选择 | CASE INT1 OF 1: BOOL1 := TRUE; 2: BOOL2 := TRUE; ELSE BOOL1 := FALSE; BOOL2 := FALSE; END_CASE; |
| 6 | FOR | FOR循环 | J:=101; FOR I:=1 TO 100 BY 2 DO IF ARRI = 70 THEN J:=I; EXIT; END_IF; END_FOR; |
| 7 | WHILE | WHILE循环 | J:=1; WHILE J<= 100 AND ARRJ <> 70 DO J:=J+2; END_WHILE; |
| 8 | REPEAT | REPEAT循环 | J:=-1; REPEAT J:=J+2; UNTIL J= 101 OR ARRJ = 70 END_REPEAT; |
| 9 | EXIT | 退出循环 | EXIT; |
| 10 | CONTINUE | 继续循环下次执行 | CONTINUE; |
| 11 | JMP | 跳转 | label: i:=i+1; JMP label; |
| 12 | ; | 空语句 | ; |

03 后记

以上为汇川PLC地址空间与ST语言的相关笔记,
有记录不当之处欢迎大佬在留言区留言指正,更多内容也可以在交流群探讨。

相关推荐
敲代码的嘎仔10 小时前
从零搭建微服务:Spring Cloud Alibaba 全家桶踩坑实录(Nacos + OpenFeign + Gateway + Sentinel)
java·spring boot·spring·spring cloud·微服务·gateway·sentinel
带娃的IT创业者10 小时前
Puppeteer 深度解析:超越自动化测试的现代 Web 交互范式
前端·交互·puppeteer·可观测性·浏览器自动化·无头浏览器·web工程化
程序员爱钓鱼10 小时前
Rust 所有权 Ownership 详解:理解内存安全的核心机制
前端·后端·rust
一条泥憨鱼11 小时前
苍穹外卖【day7| 对购物车进行操作】
java·后端·mysql·苍穹外卖
Mh18 小时前
别再只会 `find` 了:Map 在前端业务里的真实用法
前端·javascript
陈随易19 小时前
FFmpeg 9.0 发布,代号 Lei,音视频处理再升级
前端·后端·程序员
爱丶狸19 小时前
Grafana_Zabbix_ImageRenderer_部署与前端操作手册
linux·前端·zabbix·grafana·kylin
凌虚1 天前
面向 MySQL 用户的 PostgreSQL 快速上手指南
数据库·后端·架构
五阿哥永琪1 天前
MySQL中操作json的函数!
数据库·mysql·json
用户059540174461 天前
把AI对话记忆存储测试从手工改成Playwright+pytest,覆盖率从20%提到96%,回归时间缩短90%
前端·css