彩灯广告屏PLC控制S7-200程序:包含后发送产品梯形图、接线图原理图及IO分配与组态画面详解
接线图我是用CAD画的,给客户的PDF版里标得清清楚楚:DC24V的公共端必须和PLC的M端连起来,每路输出都加了1A的保险丝,毕竟户外灯珠多,烧了换起来也方便,还有急停一定要串在启动回路里,客户一开始还嫌麻烦,我直接甩了个国标电工图集给他就闭嘴了。整个项目下来,虽然用的是老掉牙的S7-200,但是胜在稳定,客户用了一周就反馈说没问题,比他们之前用的单片机方案靠谱多了,毕竟PLC的抗干扰能力真的不
彩灯广告屏的PLC控制S7-200程序 程序 我们主要的后发送的产品有,带解释的梯形图接线图原理图图纸,io分配,组态画面
上周刚帮客户搞定了一套户外彩灯广告屏的PLC控制项目,用的还是经典的S7-200,本来以为老架构玩不出花,结果客户要求既能跑流水灯又能切自定义广告画面,还得能调亮度,折腾了两天总算弄利落了,今天把整个流程扒出来给大伙唠唠。
首先先讲最基础的IO分配,我当时是按客户的16路LED灯板来的,外加几个操作按钮和电位器,直接导进STEP7-MicroWIN的符号表就能用,给大伙贴一下:
// 直接复制到STEP7的符号表就能用,不用瞎改
I0.0 START // 启动按钮(常开,接DC24V+)
I0.1 STOP // 急停按钮(常闭,断电就触发,安全底线)
I0.2 ADJ_UP // 亮度加键(后来用触摸屏替代了)
I0.3 ADJ_DOWN // 亮度减键
I0.4 MODE_SW // 自动/自定义模式切换键
Q0.0-Q0.7 LIGHT1-LIGHT8 // 第一排8路灯组
Q1.0-Q1.7 LIGHT9-LIGHT16 // 第二排8路灯组
VW0 LIGHT_VAL // 亮度调节寄存器,存0-255对应0-100%亮度
AIW0 BRIGHT_ADJ // 电位器模拟量输入
为啥这么分?其实就是顺嘴,Q0和Q1是S7-200自带的前16个输出点,刚好对应两块8列的灯板,客户看了也能快速对应上自己的硬件,不用我再解释半天。
接线图我是用CAD画的,给客户的PDF版里标得清清楚楚:DC24V的公共端必须和PLC的M端连起来,每路输出都加了1A的保险丝,毕竟户外灯珠多,烧了换起来也方便,还有急停一定要串在启动回路里,客户一开始还嫌麻烦,我直接甩了个国标电工图集给他就闭嘴了。
接下来是核心的梯形图程序,这块我没搞那些花里胡哨的,都是最实用的逻辑,先贴几个关键的Network:
彩灯广告屏的PLC控制S7-200程序 程序 我们主要的后发送的产品有,带解释的梯形图接线图原理图图纸,io分配,组态画面
首先是上电初始化,这个SM0.1是S7-200的上电脉冲,只在PLC上电的第一个扫描周期接通,用来给灯板初始化太方便了,我一开始还自己用M点做,后来发现官方自带的香多了:
// Network 0:上电初始化,开机第一盏灯亮
LD SM0.1
= Q0.0
然后是最经典的启动自锁回路,整个程序的运行使能全靠它:
// Network 1:启动自锁,按启动常亮,按急停直接断
LD START // I0.0
O M0.0
AN STOP // I0.1,常闭点所以用AN
= M0.0
接下来是定时移位的流水灯逻辑,我当时想要每100ms移一次位,所以用了T37这个100ms时基的定时器:
// Network 2:定时产生移位脉冲,每0.1s移一次
LD M0.0
TON T37, 1 // T37时基100ms,1就是0.1s
LD T37
EU
= M0.1
然后是自动模式下的流水灯,用循环左移指令,让灯珠挨个亮起来:
// Network 3:自动流水灯模式
LD M0.0
AN M0.2 // M0.2是自定义模式标志,自动模式下才跑这个
RLB Q0, 1 // 循环左移一位,Q0的灯挨个亮
RLB Q1, 1 // 第二排也跟着移,保持同步
这里要注意,第一次上电的时候只有Q0.0亮,后面每次移位都会把前一个灯的状态移到下一个,完美实现流水效果。
然后是自定义广告画面的逻辑,客户要显示“HELLO”,我直接用MOVB指令把十六进制数写到输出口,比一个个置位爽多了,比如:
// Network 4:自定义HELLO广告画面
LD M0.0
A M0.2 // 切换到自定义模式才执行
MOVB 16#81, Q0 // Q0.0和Q0.7亮,对应H的左右两竖
MOVB 16#7E, Q1 // Q1.1到Q1.6亮,对应E的横和竖
MOVB 16#09, Q0 // 后面的L、O就不细写了,反正客户自己能改数值
后来我嫌让客户改十六进制麻烦,直接加了个触摸屏的组态画面,用WINCC flexible做的,就是一个小界面,上面有16个小矩形对应16路灯,客户点一下就能亮灭,自动生成MOVB的数值,省得他自己算半天。
最后是亮度调节,这块我一开始用软件PWM老是卡延迟,后来直接用S7-200自带的硬件PWM,把电位器的模拟量值转换成占空比,一行指令搞定:
// Network 5:硬件PWM亮度调节
LD M0.0
MOVW AIW0, VW0 // 把电位器的模拟量值存到亮度寄存器
PWM Q0.0, T37 // 用T37做PWM的时基,占空比由VW0决定
当然实际调试的时候还要先配置定时器的周期,不过大概意思就是把模拟量转换成占空比,调整灯的亮度,这个比手动调按钮方便多了,客户用触摸屏的滑块就能直接调亮度。
整个项目下来,虽然用的是老掉牙的S7-200,但是胜在稳定,客户用了一周就反馈说没问题,比他们之前用的单片机方案靠谱多了,毕竟PLC的抗干扰能力真的不是吹的,上次他们那边没加中继,雷击把PLC烧了,后来加了中继就没出过问题。
对了,我把整个程序的梯形图、接线图、IO分配表还有组态画面都打包好了,需要的评论区扣1就行,不用谢哈。

更多推荐



所有评论(0)