语言程序改错题有几个错误_西门子STEP7编程过程中常见错误之简单错误及循环程序错误举例...

前言:

学习一种编程语言不是一件简单的事情,不可能一朝一夕就能完成,在初学阶段难免会犯一些错误,作为编程人员一定要清楚程序的来龙去脉,否则程序在执行过程中就可能与编程人员的初衷大相径庭,在本文中不对STEP7软件及编程语言做详细的讲解,只是列举一些在STEP7编程过程中常见的错误,希望通过本文能让你在学习编程过程中尽量减少在编程方面的错误。

STEP7编程中常见的错误举例:

1. 简单错误:简单举几个例子,非常常见,但却容易被忽视。

1.1 地址超范围:

24e314126f10bb265162cdc3e812f7d8.png

上面这两条语句很简单,语法没有任何错误,可以下载到400CPU中,但是如果你将下载到315-2DP中,将无法完成,因为CPU315-2DP不支持M3000.0这么大的地址空间。

1.2 对指令不熟悉

de774396c348ed6d983a9d254851b43e.png

同样以上三条语句也没有语法错误,本意是当M0.0由0变为1的上升沿时,Q0.1导通一次,但由于FP指令是用了与A指令相同的地址,所以Q0.1的状态是不会有任何变化的。

1.3 地址重叠

985926edd50f7a69fe07838b7c1c8415.png

同样语法没有错误,但由于MW10包含了M11.0,这里就要考虑对M11.0的写操作与MW10的写操作是否存在逻辑冲突的问题了。

2. 循环程序错误

在我们编程中,循环程序的使用是非常常见的,下面的例子初衷是实现一个500此循环操作,但由于没有考虑下列几个因数,使程序不能正确执行。

bb08896f78767bddb7c82c3b2d75f9b2.png

因素1:循环程序初始化

程序中没有MW0的初始化语句,一旦循环程序被多次调用将发生错误,所以,应在LOOP标号前增加以下语句:

242564fd799fa15f542a29c6e829077b.png

转换成STL后程序为:

252627acd04807b424e4bd739801bb0f.png

因数2:要考虑循环程序执行时间

在网络3中添加用户程序后,是不是所有的工作就完成了呢?这里还要考虑CPU的扫描执行周期问题,假设网络3添加一个子程序,这些程序执行需要的时间为A,用户其他程序执行需要时间为B,那么A*500+B的时间总和要小于下图中的扫描执行周期时间,否则就可能引起由于程序扫描时间超出了CPU的监控时间而导致CPU停机,用户应在硬件组态中的程序扫描监控时间改大于此时间的数值。

bb76f23a8cddb2cb11e70ea510bf229e.png

因数3:循环程序累加控制:

上例中之所以用STL显示,目的在于提示另一个在编写程序中经常出现的错误,在编程中有人会使用MB0代替上例中的MW0,或者用INC指令,由于这两种用法都是字节操作,如果使用MB0,由于MB0最大为255,永远不会大于500,程序将出现死循环的情况,所以这里要强调的就是数据类型匹配的问题。

电气相关知识和经验是用来分享,希望本文能对你有帮助。与人玫瑰,手留余香。

欢迎大家关注,点赞,评论及转发。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值