[西门子] TIA博途SCL编程学习50_扑克牌顺子判断

[复制链接]
查看175 | 回复0 | 2024-4-16 09:07:06 | 显示全部楼层 |阅读模式
1 | 题目


从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2-10为数字本身,A为1、J为11、Q为12、K为13,而大小王定义为0,可以看成任意数字,也就是说大小王可以充当任何一张牌来组成顺子。



2 | 设计分析


当五张牌中有重复牌(大小王除外)的时候,肯定不能组成顺子;如果没有重复牌,当最大牌减去除大小王外的最小牌大于4时,肯定不能组成顺子;其他情况都可组成顺子。



3 | 创建功能或功能块


创建功能块FB,命名为“AreStraight”。




4 | 定义接口变量


具体接口变量定义见下图:
定义数据类型为整型数的一维数组变量#nums作为随机抽的5张扑克牌。定义数据类型为整型数的一维数组变量#statNums作为重复牌的判断。



5 | 程序代码


编写程序代码。如下图:


关键算法就是要确保没有重复的牌(大小王0除外,而且最多允许有两张),其次是牌中最大值和最小值相差不能大于4。



6 | 代码测试


在循环OB中调用FB-“AreStraight”,调用时会自动创建背景数据块,命名为“InstAreStraight”,该背景数据块可以用来监视和修改数据。转至在线并监控程序。如下图:


抽取五张牌:5、6、7、8、9,结果为TRUE(顺子)。


抽取五张牌:大王、小王、1、2、5,结果为TRUE(顺子)。



抽取五张牌:1、2、3、5、8,结果为FALSE(不是顺子)。




7 | 总结


学习使用FOR循环语句;
学习使用IF条件语句;
学习一维数组的使用方法;
学习组合赋值的使用方法。
- END -
PLCSIM V18 / PLCSIM Adv. V5.0 新功能——博途仿真调试利器

知识小卡片
PLCSIM:可集成在博途内部,需要单独安装的仿真器,支持S7-1200/1500 PLC的程序逻辑仿真,支持S7、OUC通讯等功能。(免费使用)
PLCSIM Advanced:西门子高级仿真器,只支持S7-1500 PLC,运行时会激活对应的虚拟网卡,从而使虚拟PLC具备一定的通讯功能,支持TCP/IP、OPC UA等通讯方式,支持二次开发。(需要授权)

*关于兼容性:PLCSIM/PLCSIM Advanced V5.0支持V14到V18版本的TIA Portal项目,以及V1.8-V3.0版本的CPU固件

PLCSIM V18
已经安装了博途V18的小伙伴应该都注意到了,最新发布的PLCSIM V18界面和之前相比有很大的不同(参见下图↓),下面会从界面和操作两个部分进行介绍。
PLCSIM V18 新界面PLCSIM V18 全新界面既包含PLCSIM的功能,同时也可在界面中集成PLCSIM Advanced的功能。在安装PLCSIM V18时,默认会安装PLCSIM Advanced V5.0,如下图。(PLCSIM Advanced也可和之前一样单独安装使用)
初始界面

① :PLC工作区组态② :PLC列表③ :IO操作(可进行变量仿真和事件仿真)④ :PLC工作存储区
添加PLC实例

① :PLC指示灯② :PLC上电按钮③ :PLC运行按钮④ :PLC暂停按钮⑤ :PLC实例通信模式选择⑥ :PLC可选类型⑦ :添加PLC实例
通信模式
- PLCSIM Softbus:PLCSIM支持的仿真模式,不具有真实IP地址,不支持TCP/IP、OPC UA等通讯方式
- TCP/IP 单适配器:仅PLCSIM Advanced支持,该模式下的PLC实例会连接到PLCSIM虚拟网卡中,支持更多通讯方式
- TCP/IP 多适配器:V18 PLCSIM Advanced 功能!可为仿真的PLC实例增加多个虚拟网口(目前只支持在PLCSIM Advanced单独的界面中使用)*关于通讯接口更多详细介绍可参见:

PLCSIM Adv. 各种通信接口介绍



  • 当前PLC实例已处于运行状态。
详细操作可查看以下视频:
5. IO操作介绍

变量仿真点击“SIM表格” - “属性” - 选择加载来源,即可加载博途变量表中的变量(变量需要勾选在HMI中可见)

也可选择“变量”,双击变量即可自动添加到Sim Table中

公众号:  巨控电子( 扫码关注 )      

   微信群:PLC工业自动化社区 (加好友标注:姓名-城市)

西门子WINCC


  • 博途WinCC专业版C/S架构入门指南
  • 咔!咔!咔!自动/停止/手动 - WinCC中的三档转换
  • 按图索数-WinCC中的“地图+数据”
  • WinCC与S7-1500 R/H系统通信
  • 通过Web Service与WinCC交互数据
  • 可缩放矢量图形(SVG)在WinCC中的应用
  • WinCC V7.5典型架构及选型指南
  • 自动语音播报WinCC报警消息
西门子TIA博途
1.S7-PLCSIM Advanced使用入门
2.使用PLCSIM Advanced仿真博途PID
3.使用PLCSIM Advanced仿真博途Modbus_TCP
4.使用PLCSIM Advanced仿真博途S7-1500 OPC UA
西门子TIA博途SCL学习
1.西门子PLC用TIA博途SCL语言写的一个产生随机实数的指令块(学习1)
2.TIA博途SCL编程学习2_sin(x)
3.TIA博途SCL编程学习3_两个数的计算器
4.TIA博途SCL编程学习4_选择法排序
5.TIA博途SCL编程学习5_一串数字的加法
6.TIA博途SCL编程学习6_数组逆序
7.西门子TIA博途S7-1200/1500学习7间接寻址指令PEEK的使用
8.TIA博途SCL编程学习8_计算N天后的日期
9.TIA博途SCL编程学习9_百鸡百钱
10.TIA博途SCL编程学习10_字符串日期转换成DATE数据类型
11.TIA博途SCL编程学习11_多条件与运算
12.TIA博途SCL编程学习12_数组求和两种算法比较
13.TIA博途SCL编程学习13_电机正反转加点动
14.TIA博途SCL编程学习14_填表格
15.TIA博途SCL编程学习15_素数判断

16.TIA博途SCL编程学习16_歌德巴赫猜想验证

17.TIA博途SCL编程学习17_选择法排序

18.TIA博途SCL编程学习19_分数段人数统计

19.TIA博途SCL编程学习19_分数段人数统计

20.TIA博途SCL编程学习20_换钱

21.TIA博途SCL编程学习21_4个数字中的3个数字的排列组合

22.TIA博途SCL编程学习22_奖金计算

23.TIA博途SCL编程学习23_求最大公约数和最小公倍数

24.TIA博途SCL编程学习24_一串数字的加法

25.TIA博途SCL编程学习25_找出1-1000之间的完数

26.TIA博途SCL编程学习26_小球反弹高度

27.TIA博途SCL编程学习27_猴子吃桃

28.TIA博途SCL编程学习28_一个分数序列加法

29.TIA博途SCL编程学习29_五位数分解

30.TIA博途SCL编程学习30_捡鸡蛋

31.TIA博途SCL编程学习31_HelloWorld

32.TIA博途SCL编程学习32_幂
33.TIA博途SCL编程学习33_水仙花数

34.TIA博途SCL编程学习34_完数
35.TIA博途SCL编程学习35_另类比大小
36.TIA博途SCL编程学习36_自然数反转
37.TIA博途SCL编程学习37_数字加密

38.TIA博途SCL编程学习38_三种方法求最大公约数

39.TIA博途SCL编程学习39_友好数
40.TIA博途SCL编程学习40_平方回文数
41.TIA博途SCL编程学习40_斐波那契数列
42.TIA博途SCL编程学习41_大数乘法
43.TIA博途SCL编程学习42_三位数的组合
44.TIA博途SCL编程学习43_新娘和新郎
45.TIA博途SCL编程学习44_韩信点兵
46.TIA博途SCL编程学习45_过桥问题
47.TIA博途SCL编程学习46_分鱼问题
48.TIA博途SCL编程学习47_跳跃游戏
49.TIA博途SCL编程学习47_狼追兔子




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

本帖子中包含更多资源

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

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

本版积分规则