汇川技术|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 ARR[I] = 70 THEN J:=I; EXIT; END_IF; END_FOR; |
| 7 | WHILE | WHILE循环 | J:=1; WHILE J<= 100 AND ARR[J] <> 70 DO J:=J+2; END_WHILE; |
| 8 | REPEAT | REPEAT循环 | J:=-1; REPEAT J:=J+2; UNTIL J= 101 OR ARR[J] = 70 END_REPEAT; |
| 9 | EXIT | 退出循环 | EXIT; |
| 10 | CONTINUE | 继续循环下次执行 | CONTINUE; |
| 11 | JMP | 跳转 | label: i:=i+1; JMP label; |
| 12 | ; | 空语句 | ; |

03 后记

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

相关推荐
青莳吖1 分钟前
Java通过Map实现与SQL中的group by相同的逻辑
java·开发语言·sql
张声录14 分钟前
【ETCD】【实操篇(三)】【ETCDCTL】如何向集群中写入数据
数据库·chrome·etcd
逆旅行天涯6 分钟前
【Threejs】从零开始(六)--GUI调试开发3D效果
前端·javascript·3d
Buleall8 分钟前
期末考学C
java·开发语言
无为之士10 分钟前
Linux自动备份Mysql数据库
linux·数据库·mysql
重生之绝世牛码10 分钟前
Java设计模式 —— 【结构型模式】外观模式详解
java·大数据·开发语言·设计模式·设计原则·外观模式
小蜗牛慢慢爬行17 分钟前
有关异步场景的 10 大 Spring Boot 面试问题
java·开发语言·网络·spring boot·后端·spring·面试
小汤猿人类23 分钟前
open Feign 连接池(性能提升)
数据库
m0_7482552628 分钟前
easyExcel导出大数据量EXCEL文件,前端实现进度条或者遮罩层
前端·excel
新手小袁_J41 分钟前
JDK11下载安装和配置超详细过程
java·spring cloud·jdk·maven·mybatis·jdk11