编程实例|西门子博途SCL编制锁机催款程序
1、首先硬件组态这里随便选择了一款1500的PLC,添加了一个HMI;
2、程序结构;
3、建立一个FB块,命名为LOCK_program,开始编写程序,首先接口定义如下:
▲OUTPUT
▲静态变量
▲临时变量与常量
4、程序段编制,首先我们整理一下思路,我们要实现定时锁机功能,可以通过调用PLC的系统时间,然后与我们设定的试用时间作比较,一旦到了设定时间,即触发一个变量;
▲实现时间读取与LOCK使能
RD_LOC_T指令就是我们西门子自带的读取PLC本地时间指令,需要注意的地方是,这里的数据类型是DTL;
5、提取DAY,HOUR,MINUTE,SEC(天、小时,分钟,秒);
▲提取时间
6、随机数函数调用,这里引用随机数主要是为了生成解锁码,以及验证码的动态显示;
▲随机数
7、8位解锁码生成,这里的可以自己随便定义解锁码的生成算法;
▲生成解锁码
8、解码算法 (IN1+IN2+IN3+IN4+IN5+IN6+IN7+IN8)* A + B * C,可以按照个人喜好随意更改,当设备上锁后,使用人员需要在触摸屏上生成8为解锁验证码,然后发给厂家,厂家根据发来的验证码,发回一个对应的解锁密码;
▲解码程序
9、一些状态为复位;
▲状态复位
10、功能演示
▲未上锁状态