[三菱] 三菱FX5U PLC,彩灯循环点亮跑马灯程序,用ST语言也不难

[复制链接]
查看79038 | 回复0 | 2024-4-28 08:01:45 | 显示全部楼层 |阅读模式
三菱FX5U PLC,彩灯循环点亮跑马灯程序

某程序要求:10个灯每隔1秒循环点亮,周而复始。程序要如何编写?

软元件分配/使用如下表:

Y0
灯1
Y12
跳转到Y0
Y1
灯2

Y2
灯3M100
循环启动
Y3
灯4X0
程序启动
Y4
灯5X1
程序停止
Y5
灯6SM412
1秒时钟
Y6
灯7SM411
0.2秒时钟
Y7
灯8SM413
2秒时钟
Y10
灯9SM410
0.1秒时钟
Y11
灯10SM409
0.01秒时钟


首先,我们用梯形图语言来编写,打开三菱PLC编程软件MELSOFT GX Works3,新建一个工程,选择系列、机型,选择梯形图语言编写:



梯形图程序,用ROLP左移循环指令设计如下:



第一步,启动程序,传送初始值到Y0~Y12的位组合元件中。K1表示Y0一个灯为1(on)点亮,这个值可以根据需要更改,启动循环。

第二步,停止程序,复位循环,区间复位Y0~Y15。

第三步,启动循环,设计间隔时间,间隔位数。这里的SM412是每秒移位一次,K1是一次移位1个灯。Y12接通后,返回初始值。



上图是两个灯每0.2秒移位两位的程序,当然还可以改变K3、K2、K3Y0、SM411变化为其他形式。

其次,我们再用ST语言来编写,打开三菱PLC编程软件MELSOFT GX Works3,新建一个工程,选择系列、机型,选择ST语言编写:



ST语言程序如下:

IF LDP(1,X0) THEN

        K3Y0:=1;

        M100:=1;

END_IF;

IF LDF(1,X1) THEN

        K3Y0:=0;

        M100:=0;

END_IF;

IF M100 AND SM412 THEN

        ROLP(TRUE,K1,K3Y0);

END_IF;

IF M100 AND SM412 AND Y12 THEN

        K3Y0:=1;

END_IF;



参阅:《三菱FX5U PLC,移位指令的区别与速记》

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则