查看: 1904|回复: 19
收起左侧

[应用问题] 刚学ST编程,这个贩卖机的案例,该如何写,已写出部分功能

biggerms 2021-12-1 16:07:10 | 显示全部楼层 |阅读模式
邀请回答

马上注册,享受更多特权

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

x
编程要求:
用PLC 对自动售货机进行控制,根据工作要求,写出控制程序。
1.此售货机可以投入1元,5元,10元硬币,当出售汽水和咖啡2中商品,汽水5元/杯、咖啡7元/杯。
2.当投入的硬币总值超过5元时,汽水指示灯亮。当投入的硬币总值超过7元时,汽水及咖啡指示灯亮。
3.当汽水指示灯亮时,按买汽水按钮,则汽水排出,7s后自动停止,这段时间内,汽水指示灯闪亮。
4.当咖啡指示灯亮时,按买咖啡那妞,则咖啡排出,7s后自动停止,这段时间内,咖啡指示灯闪亮。
5.若购买后有余钱时,找钱指示灯亮,按下找钱按钮,找钱指示灯闪烁,闪烁的次数和余钱数(单位元)一样。

有 闪烁功能不会写 ,投入金额累加和购买后金额减少的功能不会写。


11.png

自动售货机.zip

170.85 KB, 下载次数: 54





上一篇:ST编程中 需要使用 按1秒闪烁的功能 请大神举个例子看看.
下一篇:AM600下载源代码到设备上出现问题

已有 0 人打赏作者

回复 邀请回答送花

使用道具 举报

biggerms 2021-12-1 18:09:57 | 显示全部楼层

查找一个大神的资料,把闪烁功能弄出来了。  如下

关于 投币  1元的,5元的,10元的,怎么累计,购买后再减去相应的商品价格。这个真不会,找资料也找不到。求助!!!!!!

(********************************闪烁功能**********************************************)
q汽水灯闪烁.IN := q汽水流出阀;  //使用功能块
q汽水灯闪烁.PT := T#10MS;       //延时1秒
IF q汽水灯闪烁.q THEN           //计时到达1秒
        q汽水灯闪烁.in := FALSE ;   //重新开始计时   
        q汽水指示灯 := NOT q汽水指示灯;  //对输出取反
END_IF
q汽水灯闪烁();    //调用函数
image.png
回复 送花

使用道具 举报

Slimming 2021-12-2 20:49:29 | 显示全部楼层
biggerms 发表于 2021-12-1 18:09
查找一个大神的资料,把闪烁功能弄出来了。  如下

关于 投币  1元的,5元的,10元的,怎么累计,购买后再 ...

闪烁可以用PWM实例化实现,简单方便。
累加用判断进行自加,和C语言的+=一样,比如
IF xButton THEN
    rMoneySum:=rMoneySum+rMoneyPut;
END_IF
回复 送花

使用道具 举报

JeffreyNan 2021-12-3 08:18:48 | 显示全部楼层
我也刚学ST编程,正好拿你这个案例学习一下,这是我写的
屏幕截图 2021-12-03 081520.jpg
回复 送花

使用道具 举报

biggerms 2021-12-3 09:20:13 | 显示全部楼层
孙黎明 发表于 2021-12-2 20:49
闪烁可以用PWM实例化实现,简单方便。
累加用判断进行自加,和C语言的+=一样,比如
IF xButton THEN

我用2个定时器互锁行程震荡电路,实现闪烁
Ton_3(IN :=  NOT time2_out ,PT :=time1);     // 利用2个定时器 互锁,做一个1秒闪烁的震荡电路
          time1_out := Ton_3.Q ;
TON_4(IN :=time1_out ,PT :=time2);
          time2_out := TON_4.Q ;
SS闪烁 := time1_out ;              // 得到结果就是 1秒闪烁
回复 送花

使用道具 举报

wangxuan 2021-12-3 09:32:24 | 显示全部楼层
随便写在哪里
IF  汽水按钮  AND 当前钱数>5  then
    当前花去钱数:=5;
  end_if;
IF  咖啡按钮  AND 当前钱数>7  then
    当前花去钱数:=7;
  end_if;
写在出料的地方
Y余额:=Y余额-当前花去钱数
回复 送花

使用道具 举报

wangxuan 2021-12-3 09:38:27 | 显示全部楼层
写在出料的地方
Y余额:=Y余额-当前花去钱数
当前花去钱数:=0;

当前花去钱书数忘记清0了。
回复 送花

使用道具 举报

wangxuan 2021-12-3 09:43:25 | 显示全部楼层
余额叠加的还好,识别不知道怎么做。
Y余额:=Y余额+投入钱数;  (自动识别钱数,往投入钱数给于数值);

自己识别
IF  投入钱数=1  then  
y余额:=y余额+1;
end_if;
IF  投入钱数=5  then  
y余额:=y余额+5;
end_if;
IF  投入钱数=10  then  
y余额:=y余额+10;
end_if;
回复 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部