Easy 系列确实基于 AutoShop,支持 LD(梯形图)等语言;另外 AutoShop 4.10.1.0 起,Easy/H5U 增加了“立即输入/输出相关指令”,所以截图里的“立即常开触点、立即常闭触点、立即输出线圈”并不是普通触点换了一个名字,而是有明确的扫描机制区别。(汇川技术)
截图里的这些元素,建议先分成6 类来理解。
1. 最基础:常开触点、常闭触点
这是整个梯形图最核心的两个元素。
常开触点—| |—
可以理解成:
如果这个变量 = TRUE / ON / 1 那么电流可以通过例如:
X0 Y0 --| |----------( )意思是:
X0 = ON → 条件成立 → Y0 = ON如果 X0 是启动按钮,那么按下按钮后,PLC读取到 X0=1,Y0线圈得电。
常闭触点—|/|—
逻辑正好相反:
变量 = FALSE / OFF / 0 → 条件成立 变量 = TRUE / ON / 1 → 条件不成立例如:
X1 Y0 --|/|-----------( )表示:
X1 = 0 → Y0 ON X1 = 1 → Y0 OFF注意一个很重要的概念:
梯形图里的“常开/常闭”首先描述的是程序逻辑判断方式,不一定等价于现场按钮本身的物理常开/常闭接点。
比如:
X0物理上可能接的是常闭急停按钮 程序里却仍然可以: --| |-- X0因为程序判断的是:
X0 当前这个 bit 是 1 还是 0。
2. 边沿触点:上升沿、下降沿
这个一定要重点掌握,因为实际 PLC 程序里面非常常见。
上升沿触点:
OFF → ON 0 → 1只在这个变化发生的那个扫描周期成立一次。
例如 X0:
扫描1:0 扫描2:0 扫描3:1 ← 上升沿,只在这里成立 扫描4:1 扫描5:1那么上升沿触点:
扫描1 FALSE 扫描2 FALSE 扫描3 TRUE 扫描4 FALSE 扫描5 FALSE所以它不是:
“X0只要是1就成立”
而是:
“X0刚刚从0变成1的这一瞬间成立一次。”
非常适合:
启动一次动作 计数 +1 触发拍照 触发扫码 发送一次数据 状态机切换到下一步比如:
产品到位传感器 ↓ 上升沿 ↓ 给相机发送一次拍照触发如果不用上升沿,而直接用常开:
X0 --| |----[发送拍照命令]假如产品停在那里500ms,而PLC扫描周期1ms,那么理论上这段逻辑可能执行几百次。
而上升沿:
X0↑ ------[发送拍照命令]只执行一次。
这对理解设备程序特别重要。
下降沿触点则完全反过来:
ON → OFF 1 → 0变化发生时成立一个扫描周期。
例如:
扫描1:1 扫描2:1 扫描3:0 ← 下降沿 扫描4:0扫描3成立一次。
典型应用:
按钮释放 传感器离开 气缸离开原位 产品离开工位 信号撤销后的动作3. 线圈:把前面的逻辑结果写给一个位变量
截图中的:
线圈
就是普通输出线圈。
例如:
X0 X1 M0 --| |----|/|-------------( )可以直接翻译为:
M0 = X0 && !X1;所以如果有软件开发基础,其实可以把一条梯形图理解成:
左边是在计算布尔表达式,右边线圈是在赋值。
例如:
X0 M10 X5 Y0 --| |-----| |------|/|---------( )其实就是:
Y0 = X0 && M10 && !X5;这会是读 PLC 程序非常有效的思维方式。
4. 上升沿脉冲化、下降沿脉冲化
截图最下面还有:
上升沿脉冲化
下降沿脉冲化
它和“上升沿触点 / 下降沿触点”相关,但不是完全一个东西。
简单先这样理解:
上升沿触点
针对某一个具体变量:
X0 从0→1检测 X0 的边沿。
而:
上升沿脉冲化
更像是:
把当前位置前面整段逻辑的 FALSE→TRUE 变化,转换成一个扫描周期的脉冲。
例如前面是:
X0 AND X1 AND M0整个组合逻辑:
0 → 1时,后面的逻辑只获得一个扫描周期的 TRUE。
所以现阶段可以记成:
上升沿触点 ≈ 检测某个bit的 0→1 上升沿脉冲化 ≈ 检测前面整个逻辑结果的 0→1下降沿同理。
等后面碰到真实程序时再结合具体网络讲,这样最好理解。
5. “立即”触点和普通触点的区别
截图里这三个:
立即常开触点 立即常闭触点 立即输出线圈是 AutoShop 里一个值得单独理解的东西。
汇川官方 AutoShop 4.10.1.0 更新说明明确提到:
Easy、H5U 支持立即输入/输出相关指令。(掌上汇川)
为什么需要“立即”?
这涉及 PLC 的经典扫描机制。
通常可以粗略理解为:
① 读取物理输入 ↓ ② 保存到输入映像区 ↓ ③ 执行整个PLC程序 ↓ ④ 把输出结果写给物理输出 ↓ ⑤ 下一扫描周期普通触点,例如:
--| |-- X0程序执行到这里时,通常使用的是本扫描周期采集进来的输入状态。
如果程序运行过程中:
物理X0突然变化普通逻辑通常不会因为执行到了这一行,就重新跑去读取一次物理端口。
而立即输入的核心思想就是:
不等待正常的输入刷新时机,现在就读取输入状态。
类似:
普通输入: 读输入映像区 立即输入: 直接刷新/读取实际输入同理,普通输出:
Y0 ( )通常先修改输出映像状态,到输出刷新阶段再真正作用到硬件。
立即输出则是:
当前程序执行到这里时立即刷新相关物理输出,而不是等待正常输出刷新。
所以:
普通触点/线圈 → 日常设备逻辑 立即触点/立即线圈 → 对响应时间要求较高的特殊场景普通非标设备程序里,首先学普通版本就够了。
6. 剩下这些现在先知道“是什么”即可
截图还有:
步进点 比较触点 应用指令 子程序 执行块 横线 竖线 反向器 删除竖线可以先这样分类。
步进点
用于顺序控制 / 步进流程。
例如设备:
S0 等待产品 ↓ S1 夹紧 ↓ S2 拍照 ↓ S3 判断结果 ↓ S4 放行跟现在正在学习的“设备工序状态机”非常相关,但先不用急着深入。
比较触点
用于数值比较。
普通触点只能问:
M0 是不是1? X0 是不是1?比较触点则可以问:
D0 > 100 ? D10 == D20 ? 温度 >= 80 ? 当前位置 <= 500 ?例如:
D0 >= 100 Y0 ----[比较]-------------( )对应高级语言大致:
if (D0 >= 100) { Y0 = true; }这个实际项目里也非常常见。
应用指令
这个就进入 PLC 的“函数/指令”世界了。
例如:
MOV ADD SUB MUL CMP 计时 计数 通信 运动控制 ……可以把它近似理解成:
触点 = if条件 线圈 = bool赋值 应用指令 = 函数调用/数据运算子程序
这个和高级语言非常接近:
Main() { CylinderControl(); VisionControl(); }梯形图也可以把一部分逻辑封装成子程序,再调用。
执行块
AutoShop 后续版本支持在 LD 编辑器中插入 ST 执行块,汇川官方更新说明也明确提到了这一点。(掌上汇川)
也就是可以出现这种思路:
梯形图 ↓ 某个条件成立 ↓ 执行一小段ST代码这个现在也不用优先学。
横线、竖线、反向器则更偏向编辑梯形图结构:
横线 —— 串联路径 竖线 │ 形成并联支路例如:
X0 ----| |---------+ | X1 | ----| |---------+------(Y0)本质是:
Y0 = X0 OR X1所以梯形图其实根本没有看起来那么神秘。
可以先建立这个转换关系:
| 梯形图 | 高级语言思维 |
|---|---|
| 常开触点 X0 | X0 == true |
| 常闭触点 X0 | X0 == false/!X0 |
| 串联 | && |
| 并联 | || |
| 线圈 Y0 | Y0 = 逻辑结果 |
| 上升沿 | false → true事件 |
| 下降沿 | true → false事件 |
| 比较触点 | > < == >= <= |
| 应用指令 | 函数/运算 |
| 子程序 | 方法/函数 |
现阶段建议的学习顺序
截图里的东西不要平均用力。
第一批先彻底搞懂:
常开触点 常闭触点 串联 并联 线圈然后:
上升沿触点 下降沿触点 上升沿脉冲化 下降沿脉冲化再然后:
比较触点 应用指令最后再看:
步进点 立即触点 立即线圈 子程序 执行块尤其第一批非常关键。如果“常开/常闭 + 串并联 + 线圈”真正理解透,大量普通梯形图其实就已经能直接翻译成布尔表达式了。