设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
SCL编程实例100例-118-抢30游戏
返回列表
发新帖
[西门子]
SCL编程实例100例-118-抢30游戏
[复制链接]
273
|
0
|
2024-5-16 07:49:37
|
显示全部楼层
|
阅读模式
1 | 题目
编写一个程序实现抢30游戏的功能。游戏规则:两人轮流报数,每人每次至少报1个数,最多报3个数。从1到30按顺序连续报数,谁先报到30,谁就获胜。本例练习中,定义两个角色,分别是PLC和玩家。
bi
2 | 设计分析
按下角色按钮PLC时,PLC会调用随机数生成函数,并生成一个1-3的随机数,如果随机数是1,则PLC自动选择1个数字,如果随机数是2或3,则PLC自动选择连续的2个或3个数字。按下角色按钮玩家时,玩家可以通过触摸屏选择1-3个连续的数字,然后再通过角色按钮把选择权交给PLC。
3 | 创建功能或功能块
创建功能块FB,命名为“GrabThirty”。
4 | 定义接口变量
具体接口变量定义见下图:
定义布尔型输入变量reset:游戏重置;
定义布尔型输入变量selectPlayer:选择玩家角色;
定义布尔型输入变量selectPLC:选择PLC角色;
定义布尔型输出变量winFlag:输赢结果标志;
定义整型静态变量statRandom:存储PLC的随机选择结果;
定义布尔型一维数组静态变量statSelectEnable:可供选择的数字;
定义布尔型一维数组静态变量statNumStatus:数字的选择状态;
定义布尔型多重背景实例一维数组静态变量inst1KeyStSp1:选择和取消选择数字。
5 | 程序代码
编写程序代码。如下图:
算法中要注意每次只能选择少于3个的连续数字的处理方法,特别是第1个和后3个数字的处理方法,另外玩家可以反悔选择某个数字。该程序选择权是通过两个角色按钮来实现的,如果炮友儿有兴趣,可以设计自动角色切换功能。
6 | 代码测试
在循环OB中调用FB-“GrabThirty”,调用时会自动创建背景数据块,命名为“InstGrabThirty”,该背景数据块可以用来监视和修改数据。本例中使用了HMI进行模拟演示。如下图:
通过PLC和玩家两个角色选择按钮来切换游戏的选择权,只能选择连续的1-3个数字,按下重新开始按钮,游戏将复位。本例中,玩家最后选中了数字30,玩家获胜。
7 | 总结
学习上升沿语句的使用;
学习下降沿语句的使用;
学习IF..ELSE语句的使用;
学习FOR循环语句的使用;
学习EXIT指令在FOR循环语句中的作用;
学习FC或FB在功能块FB中的调用方法;
学习功能块FB在循环组织块OB中的调用方法。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
技成培训
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』