设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
TIA博途SCL编程学习40_斐波那契数列
返回列表
发新帖
[西门子]
TIA博途SCL编程学习40_斐波那契数列
[复制链接]
509
|
0
|
2024-5-16 14:17:20
|
显示全部楼层
|
阅读模式
1 | 题目
斐波那契数列,又称黄金分割数列,或兔子数列,是指这样一个数列:1,1,2,3,5,8,13,21...这个数列从第3项开始,每一项都等于前两项之和。设计一个程序求出斐波那契数列的前10项。
2 | 设计分析
采用递归算法。
3 | 创建功能或功能块
创建功能FC,命名为“Fibonacci”。
4 | 定义接口变量
具体接口变量定义见下图:
FC的函数名即为返回值变量名,在接口中不能被修改,只能通过修改FC名称进行修改。
5 | 程序代码
编写程序代码。如下图:
注意递归调用的使用方法,即FC自己调用自己。
6 | 代码测试
在循环OB中调用FC- “Fibonacci”。如下图:
循环调用FC-Fibonacci,循环变量作为实参传递,Fibonacci的返回值存入一维数组数据块中。
转至在线并监控程序。如下图:
求得斐波那契数列的前10项分别是1、1、2、3、5、8、13、21、34、55。
7 | 总结
学习使用FOR循环语句;
学习子程序的调用;
学习使用IF...ELSE语句;
学习使用一维数组;
学习递归调用;
学习在OB中调用FC和实参的传递方式。
转发朋友圈可获得S7-1500学习视频,百度云一份
博途V18下载地址
链接: https://pan.baidu.com/s/1okjXKeRmkG4sYCpDH-vdyA 提取码: 9wjb 复制这段内容后打开百度网盘手机App,操作更方便哦
S7-1x00 如何通过编程判断程序是否发生过改动
自动化so酷
当 S7-1x00 中的程序修改后,软件校验和会发生改变。使用 GetChecksum 指令可以读取 PLC 程序中的软件较验和,将其与之前的校验和进行比较可以得知 PLC 的程序是否被改动。
本文档介绍了如何使用 GetChecksum 指令判断 PLC 中的程序是否被修改并纪录修改时间。
01
使用的硬件与软件
硬件:CPU 1215FC V4.4
软件:TIA Portal V17
02 编写 PLC 程序,调用读取校验和功能块
2.1
建立用于存储校验和及纪录修改时间的 DB 块
建立的 DB 块内容如图 1 所示。
注意:此处的校验和变量 、上一周期校验和变量、最终纪录的修改时间一定要设置为保持性变量,否则会在 CPU 停机时,不能正确保存。
图 1. 建立存储用 DB
2.2 调用功能块
GetChecksum 指令位于“扩展指令>诊断”文件夹,如图 2 所示。
图 2. 指令集中的位置
指令调用参见图 3,指令参数参考表 3。
图 3. 调用指令块
表 3. 指令管脚说明
2.3 判断校验和改变时输出当前时间
当前读取的校验和与上一周期保存的校验和比较,当较验和发生改变时,纪录较验和改变时的时间,这个时间是程序改变后下载的生效时间。如图 4 所示。
图 4. 输出程序修改后下载的时间
2.4 纪录上一周期的校验和
将本周期计算的校验和保存到上周期校验和变量,用于下一周期的比较,如图 5 所示。
图 5. 纪录上一周期的校验和
2.5 保存错误代码
错误代码仅当发生错误时出现一个周期,需要使用错误位为 true 时抓取错误代码,如图 6 所示。
图 6. 保存错误代码
03
检查程序
可以在程序下载后,对比离线的校验和及在线读取的校验和,检查程序是否正确下载,如图 7 所示。
图 7. 检查程序中读取的校验和
注意:此程序仅检查标准程序的修改;可以通过修改Scope为2,检查安全程序的修改;通过修改Scope为3,检查文本列表的修改。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
巨控电子
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』