设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
SCL编程实例100例-116-猜数字游戏
返回列表
发新帖
[西门子]
SCL编程实例100例-116-猜数字游戏
[复制链接]
96626
|
0
|
2024-4-17 20:57:35
|
显示全部楼层
|
阅读模式
1 | 题目
编写一个猜数字的游戏,按下开始按钮,PLC生成一个对玩家不可知的0-100之间的随机整数,玩家有6次机会猜测该数字,无论猜大还是猜小,系统均会有提示,如果在6次机会内猜中则成功,否则失败。
2 | 设计分析
程序开始时PLC自动生成一个0-100之间的随机数,将玩家猜测的数字(输入的数字)和该随机数做比较,如果输入数大于该随机数,系统提示猜大了,尝试次数减1,如果输入数小于该随机数,系统提示猜小了,尝试次数减1,如果在6次机会内猜中则成功,否则失败。注意要设计一个检测输入数的变化的功能作为触发数字比较的条件。
3 | 创建功能或功能块
创建功能块FB,命名为“GuessNumber”。
4 | 定义接口变量
具体接口变量定义见下图:
定义布尔型输入变量start:游戏开始;
定义布尔型输入变量reset:游戏重置;
定义布尔型静态变量statRun:运行标志位;
定义整型静态变量statRandomNum:PLC自动生成的随机数;
定义整型静态变量statGuessNum:玩家猜测的数字;
定义整型静态变量statCount:尝试次数;
定义整型静态变量statResult:猜测结果;
定义多重背景变量instDataChange:检测输入值的变化。
5 | 程序代码
编写程序代码。如下图:
猜测结果为1表示猜大了,2表示猜小了,3表示尝试失败,4表示猜对了。需要注意对于0-100范围限制的设计方法,即当输入值超过0-100的范围时,将猜测结果设置为0,表示输入错误,请重新输入,不占用尝试次数。
6 | 代码测试
在循环OB中调用FB-“GuessNumber”,调用时会自动创建背景数据块,命名为“InstGuessNumber”,该背景数据块可以用来监视和修改数据。本例中使用了HMI进行模拟演示。如下图:
点击开始按钮开始游戏,在IO域中输入猜测的数字,一共有6次机会,猜中则笑到最后。
7 | 总结
学习上升沿语句的使用;
学习IF..ELSE语句的使用;
学习FC或FB在功能块FB中的调用方法;
学习功能块FB在循环组织块OB中的调用方法。
分享 | 咨询 | 合作 | 共赢
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
zhang926370
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』