[西门子] 【连载8】博图STL实现跑马灯

[复制链接]
查看92657 | 回复0 | 2024-7-21 19:53:39 | 显示全部楼层 |阅读模式

还记得以前学习单片机时候,写的第一个程序就是跑马灯。

今天,就用西门子实现一个跑马灯




此篇内容主要使用2个功能块:
1、ROR(循环右移)
2、ROL(循环左移)
3、R_TRIG
基本思想是,使用脉冲发生器产生定时震荡,捕获每个震荡周期的上升沿用于驱动ROR或者ROL移位。

通过一个位(M1.0)来设定跑马灯的方向。
首先,新建工程,参考此篇文章
然后为PLC分配时钟地址,如下图所示。





编写代码

"R_TRIG_DB"(CLK:="Clock_1Hz");

IF "M1.0" THEN

    IF "R_TRIG_DB".Q THEN

        "mb10" := ROR(IN := "mb10", N := 1);

    END_IF;

ELSE

    IF "R_TRIG_DB".Q THEN

        "mb10" := ROL(IN := "mb10", N := 1);

    END_IF;

END_IF;

"M10.0" := "M10.0";

"M10.1" := "M10.1";

"M10.2" := "M10.2";

"M10.3" := "M10.3";

"M10.4" := "M10.4";

"M10.5" := "M10.5";

"M10.6" := "M10.6";

"M10.7" := "M10.7";

给"mb10"赋值1,用于循环移动的开始,编译下载后,可以通过"M1.0"进行控制流水灯的运行。



13—20行的代码,没实际意义,用来监控程序的。


本帖子中包含更多资源

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

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

本版积分规则