[西门子] MCGS触摸屏抽奖组态开发实例

[复制链接]
查看290 | 回复0 | 2024-7-10 08:10:57 | 显示全部楼层 |阅读模式
>
案例说明

本抽奖案例,一共设置了5种奖品可供抽取,也可能抽到“未中奖”,也就是说一共有6个不同的结果,用昆仑通态触摸屏做一个抽奖程序,将抽奖结果显示在屏幕上,根据奖品设置不同的中奖概率,点击“抽奖”按钮,开始抽奖,点击“停止”按钮,抽奖停止,字符串显示最终的中奖结果。
实现方法


创建变量

创建3个内部变量
随机数:用于产生一个随机数
奖品:用于显示不同的奖品名称
开始抽奖:值=0时停止产生新的随机数,奖品显示最后一个随机数对应的奖品名称;值<>0时,不断产生新的随机数。

生成随机数

开始抽奖<>0时,利用随机数函数!Rand(0,1)就可以产生随机数了。这里需要设置产生新随机数的频率和生成随机数的范围。
随机数的生成频率

可以理解为间隔多长时间生成一个随机数,可以新建一个循环策略,设置循环时间为100ms(该时间的最小值只能设置到100ms)。循环策略的意思是按照设定循环时间循环执行策略中的程序,将!Rand(0,0)函数放在循环策略中执行,那么每100ms就可以产生一个随机数。

产生随机数的条件

循环策略是可以看作一个循环执行的子程序,而里面的每个策略可以看作是子程序,子程序只有前面的条件满足时才被执行,条件不满足就跳过不执行。
只有当抽奖开始,才生成随机数。如果抽奖停止,则不生成随机数。

生成随机数的范围

随机数=!Rand(0,1)

根据概率划分范围生成奖品字符串


附程序脚本

随机数=!Rand(0,1)
IF 随机数>0.0 AND 随机数<=0.1 THEN
奖品="遗憾未中奖"
ENDIF
IF 随机数>0.1 AND 随机数<=0.5 THEN
奖品="汇辰精彩水性笔"
ENDIF
IF 随机数>0.5 AND 随机数<=0.7 THEN
奖品="汇辰精美笔筒"
ENDIF
IF 随机数>0.7 AND 随机数<=0.85 THEN
奖品="汇辰精致笔记本"
ENDIF
IF 随机数>0.85 AND 随机数<=0.95 THEN
奖品="汇辰精选鼠标垫"
ENDIF
IF 随机数>0.95 THEN
奖品="汇辰精工螺丝刀"
ENDIF
画面制作

奖品显示

创建一个标签,将“随机数”变量关联至填充颜色属性,将“奖品”变量关联至显示输出属性。

开始和停止按钮

设置开始按钮和停止按钮来控制产生随机数的条件变量“开始抽奖”,该变量值为1时,产生随机数,奖品字符串随之变化,抽奖开始;当该变量值为0时,停止产生随机数,奖品不再变化,即为抽奖结果。

画面启动脚本

最后写入抽奖窗口的启动脚本,停止抽奖,并将奖品字符串的内容清空。

总结

昆仑通态触摸屏开发抽奖程序用到了循环策略,循环策略是指间隔一定时间循环执行的程序。在策略中可以添加多行脚本,脚本之前还可以设置执行条件,如果条件不满足,可以跳过后面的脚本,然后判断第二行脚本的执行条件。



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

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

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

本版积分规则