- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第PAGE5页
使用
使用CheckFunction定位出错代码
作者:李坤峰
职务:助理技术支持工程师
邮箱:support@
日期:2021-11-9
摘要:
本文介绍了如何使用CheckFunction检测代码错误并且定位出错代码,并且以CheckBounds为例说明了CheckFunction的扩展功能。
TwinCAT3CheckBounds标越界除零子集
附件:
序号
文件名
备注
历史版本:
免责声明:
我们已对本文档描述的内容做测试。但是差错在所难免,无法保证绝对正确并完全满足您的使用需求。本文档的内容可能随时更新,如有改动,恕不事先通知,也欢迎您提出改进建议。
参考信息:
目录
TOC\o1-3\h\z\u1. 软硬件版本 4
1.1. 硬件 4
1.2. 控制软件 4
2. 准备工作 4
3. BoundChecks 4
3.1. 如何添加CheckBoundsFunction 4
3.2. CheckBounds使用 5
3.3. 定位出错代码 7
4. DivisionChecks 10
4.1. 如何添加CheckDivDintFunction 10
4.2. CheckDivDint的使用 11
4.3. 定位错误代码 13
5. RangeChecks与LRangeChecks 13
5.1. 如何添加CheckRangeSignedFunction 13
5.2. CheckRangeSigned的使用 14
5.3. 定位出错代码 16
6. PointerChecks 17
6.1. 如何添加CheckPointerFunction 17
6.2. CheckPointer的使用 18
6.3. 定位出错代码 20
7. 进阶使用 21
软硬件版本
硬件
编程电脑一台
控制软件
编程电脑是基于TwinCAT3.1Build4024.12版本
准备工作
新建TwinCATXAEProject 并且在PLC下新建PLCProject。
BoundChecks
如何添加CheckBoundsFunction
我们建立好PLCProject之后,可以在项目下右键ADD,点击POUforimplicitchecks。进入ADDPOUforimplicitchecks对话框。
在这个对话框中我们可以选定需要创建的CheckFunction,本文档就以BoundChecks为例。选中BoundChecks后点击Open。
CheckBounds使用
在创建完CheckBoundsFunction之后,我们到MAIN函数中编写测试程序,这里以下方的案例程序为例。这个程序意在使用CheckBounds功能检测数组的标越界错误。
编写完MAIN函数之后,我们运行程序并在线。此时我们需要回到CheckBounds,对函数添加断点,使程序运行到断点停止。
回到MAIN函数对功能进行测试,对Test1或者Test2写入值TRUE。
点击写入之后,CheckBounds检测到错误的发生,并且由于断点的存在,会自动回到CheckBounds的界面。通过黄色箭头我们可以看到,程序运行到CheckBounds:=upper;处停止,说明写入超过的数组的上限。
定位出错代码
此时我们通过CheckBounds了解到有错误发生,那么我们应该如何精确定位到是哪一段程序发生到错误呢?
我们保持这样的状态之后,在菜单栏处找到PLC,在Windows子菜单中点击CallStack。
在弹出的窗口中可以看到,第一行就是CheckBounds停止运行的位置,那么我们双击第二行就可以定位到在MAIN函数中对应的出错程序。
回到MAIN函数,重新点击运行之后我们可以看到Array[5]的值变为了1,说明CheckBounds将值分配给了仍然有效的上边界的Array[5]。
同理我们可以对Test2写入TRUE,测试CheckBounds对下标越界错误的检测。并且定位到错误发生的程序。
DivisionChecks
如何添加CheckDivDintFunction
添加CheckDivDintFunction的方法与CheckBoundsFunction的添加方式类似。
在对话框中选中DivisionChecks,点击Open后就可以看到添加了四个Function。我们分别查看四个Function的代码部分可
您可能关注的文档
- FESTO气动高级进阶内部培训之CMMP-M3-Reference-Switch-寻零.pdf
- FESTO气动高级进阶内部培训之CMMP-M3-模拟量控制.pdf
- FESTO气动高级进阶内部培训之CMMP-M3-顺序控制功能.pdf
- FESTO气动高级进阶内部培训之CMMT 111报文定位控制(位字操作).pdf
- FESTO气动高级进阶内部培训之CMMT-AS 伺服的脉冲控制--脉冲手轮与三菱 PLC - V1.0.pdf
- FESTO气动高级进阶内部培训之CMMT-AS-…-S1伺服驱动器FAS软件测试V2.2.pdf
- FESTO气动高级进阶内部培训之CMMT-AS断电后重新上使能掉使能问题解决.pdf
- FESTO气动高级进阶内部培训之CMMT-ST-...-S0步进驱动器硬件接线介绍V1.0.pdf
- FESTO气动高级进阶内部培训之CMMT高级功能-Cam controller.pdf
- FESTO气动高级进阶内部培训之CMMT高级功能-Synchronisation 脉冲同步功能.pdf
文档评论(0)