[西门子] TIA博途SCL编程学习44_韩信点兵

[复制链接]
查看296 | 回复0 | 2024-5-16 14:25:13 | 显示全部楼层 |阅读模式
1 | 题目


在中国数学史上,广泛流传着一个“韩信点兵”的故事:韩信是汉高祖刘邦手下的大将,他英勇善战,智谋超群,为汉朝建立了卓越的功劳。据说韩信的数学水平也非常高超,他在点兵的时候,为了知道有多少兵,同时又能保住军事机密,便让士兵排队报数:
按从1至5报数,记下最末一个士兵报的数为1;
再按从1至6报数,记下最末一个士兵报的数为5;
再按从1至7报数,记下最末一个士兵报的数为4;
最后按从1至11报数,最末一个士兵报的数为10。
编写程序计算韩信至少有多少兵。


2 | 设计分析


采用求余运算,借助已知条件通过枚举法找到满足上述条件的一个最小整数。



3 | 创建功能或功能块


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




4 | 定义接口变量


具体接口变量定义见下图:
定义数据类型为整型数的变量#soldierNumQ作为结果输出。



5 | 程序代码


编写程序代码。如下图:


采用WHILE循环,注意循环条件设置成了TRUE,如果报数错误的话可能会导致CPU死机,该种情况应该做一些处理。



6 | 代码测试


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


得到结果:韩信至少带了2111个士兵。



7 | 总结


学习使用WHILE循环语句;
学习使用IF条件语句;
学习组合赋值的使用;
学习EXIT语句在循环中的作用。
- END -


web server 功 能
web server 功能,并不是 SIMATIC PLC 的新功能,早在 S7-300/400 系列就已经开始支持。通过 web server,我们的终端设备即使没有安装西门子的工程软件,只需要一个标准的网页浏览器就可以获得 CPU 的信息,这意味着我们即使没有编程设备,通过手机、平板,就可以快速的访问 PLC 的信息,方便我们快速的做出诊断。而且,这种访问不仅可以在局域网中实现,通过网络技术,还可以在 Internet 上实现,无论设备卖到地球的任何地方,都可以快速的远程接入。
SIMATIC PLC 已经提供了集成的 web server 页面,可以提供包括诊断缓冲区在内的很多 PLC 信息,随着 SIMATIC PLC 技术的发展,尤其是 SIMATIC S7-1200/1500 随着固件的不断升级,集成的 web server 页面将会增加更多的功能。


web  server-运 行 系 统 信 息
S7-1500 CPU 在诊断页面提供了运行系统信息的页面,我们可以看到 CPU 的循环时间和通信负荷,尤其是在通信任务比较大的应用环境下,工程师可以很方便地获得这些信息,掌握 CPU 的运行情况。


web server-变 量 表 监 控
监视表并不是新功能,但是却非常有用。对于工程的重要数据,我们可以很方便地进行监控,尤其是在紧急的情况或者距离 HMI 设备比较远的环境下,我们的手机和平板都能获得数据,也方便我们观察现场的运行情况,对工程师调试非常的便利。即使维护工程师处在异地,也可以随时观察数据的变化。


web server-自 定 义 网 页
自定义页面,绝对是 SIMATIC PLC web 功能的一个亮点,通过自创建简单的 web 页面,我们不仅可以根据工程需要创建个性化的页面显示,而且轻量级的页面内容也大大减轻了 CPU 的负荷。简单的 AWP 语法,帮助用户无需复杂的编程知识就可以在页面中访问 CPU 的数据,S7-1200/1500 新固件下,可以支持JAVA Script 和 JSON 对页面的访问,页面的访问更加灵活!




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

本帖子中包含更多资源

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

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

本版积分规则