汇川技术|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语言的相关笔记,
有记录不当之处欢迎大佬在留言区留言指正,更多内容也可以在交流群探讨。

相关推荐
huaweichenai14 小时前
spring boot实现base64上传
java·spring boot·后端
萧瑟余晖14 小时前
Spring Web综合实战与性能调优详解
java·spring
点纭14 小时前
spring ai1.0实战:ChatClient(2)
java·后端·spring
前端 贾公子14 小时前
LangGraph == 图的状态(State)管理 (下)
运维·服务器·数据库
小马过河R14 小时前
EdgeOne深度解析:从原理、适用场景到COS接入的技术逻辑
java·开发语言·前端·spring·cos
zlwool14 小时前
机械行业ERP与进销存的合规选型边界
数据库·erp
梦想的颜色14 小时前
【AI速览】RAG 向量数据库选型:Milvus、Chroma、Qdrant、PGVector 全维度横向对比
数据库·milvus·chroma·rag·pgvector·向量库·qdrant
ZoeLandia14 小时前
TypeScript 04:类型断言与类型守卫
开发语言·前端·typescript
java水泥工14 小时前
什么是前端
java·vue·html5
guzicheng199014 小时前
webpack 安装笔记:全局 vs 本地,以及一个 PATH 环境变量的坑
前端·webpack