三菱 PLC 编程入门 1

目录

PLC 全称是 Programmable Logic Controller,即可编程逻辑控制器。主要用于工业设备控制,比如电梯、传送带、机械臂等等。

PLC 的使用者,一般是电气工程师。PLC 的优点是开发快、可扩展,稳定性好。缺点是生态封闭,迁移成本高。PLC 有两大品牌商:西门子和三菱。两家各搞各的,互相不兼容。

PLC 可以用「梯形图」或「ST 语言」编程。前者用的人多。我个人喜欢 ST,觉得可读性好。

本文是学习笔记(产品型号是三菱 FX5UC)。

运行方式

主程序执行时,CPU 会循环扫描,重复执行代码。基本流程如下图所示。

看一个简单例子。

// iCounter 是整型变量,初始值等于 0
// 在主程序中运行这行代码,iCounter 的值会不断增加
iCounter := iCounter + 1 

软元件

软元件就是硬件模块的软件表示。例如,继电器、报警器、计时器、计数器、寄存器等。使用时无需声明,引用名称和编号即可。

X0 := TRUE;  // X 是输入继电器
Y3 := FALSE;  // Y 是输出继电器
M1:= TRUE;  // M 是辅助继电器
D := 100;  // D 是数据寄存器

变量

变量要提前声明。但是编辑器(Gx Works)不支持直接用代码声明,要用交互菜单来操作。个人感觉不太方便。

常见的类型有:位(bool)、字(int)、双字(word)、time(时间)、字符串(string)等等。

函数块

讲一下函数块与函数的区别。函数块(Function Block)不能直接调用,需要先实例化才能使用,而函数可以直接使用。

// 函数调用:WORD_TO_BOOL 是函数,把 word 类型转换成 bool 类型
M100 := WORD_TO_BOOL(D106 > D107);

// 函数块调用:TON1 是计时器 TON 的一个实例
TON1(IN := TRUE , PT := T#1s, Q := Y0);

定时器

介绍几种常用的定时器。

延时开 TON

输入为 TRUE 时,延迟一段时间,输出 TRUE;输入为 FALSE 时,定时器复位,立即输出 FALSE。

参数说明

IN:输入,bool 类型
PT:延时量,time 类型
Q:输出,bool 类型

示例

// Case1: 输入 TRUE
Y0 := FALSE;
// 1秒后 Y0 等于 TRUE
TON1(IN := TRUE , PT := T#1s, Q:= Y0)  

// Case2: 输入 FALSE
Y0 := TRUE;
// 等价于 Y0 := FALSE,且定时器复位
TON2(IN := FALSE , PT := T#1s, Q:= Y0)  

延时关 TOF

输入为 FALSE 时,延迟一段时间,输出 FALSE;输入为 TRUE 时,定时器复位,立即输出 TRUE。

示例

// Case1: 输入 FALSE
Y0 := TRUE;
// 1秒后 Y0 等于 FALSE
TOF1(IN := FALSE , PT := T#1s, Q:= Y0)  

// Case2: 输入 TRUE
Y0 := FALSE;
// 等价于 Y0 := TRUE,且定时器复位
TOF2(IN := TRUE , PT := T#1s, Q:= Y0)  

持续开 TP

输入为 TRUE 时,持续一段时间,然后输出 FALSE;输入条件为 FALSE 时,定时器复位,立即输出 FALSE。

示例

// Case1: 输入 TRUE
Y0 := FALSE;
// Y0 等于 TRUE,1秒后等于 FALSE
TP1(IN := TRUE , PT := T#1s, Q:= Y0)  

// Case2: 输入 TRUE
Y0 := TRUE;
// 等价于 Y0 := FALSE,且定时器复位
TP2(IN := FALSE , PT := T#1s, Q:= Y0)  

下一步

以上是三菱 PLC 编程的基本介绍,更多内容可以参考官方文档。接下来,我们要实现一个小例子,期望把上述内容串起来。

标签 :