回复:跟我一起玩200 smart PLC 关于数据的排序

WWCWWC

西门子1847工业学习平台

  • 帖子

    9162
  • 精华

    157
  • 被关注

    1478

论坛等级:至圣

注册时间:2008-07-26

钻石 钻石 如何晋级?

发布于 2017-05-19 09:31:28

8楼

展开查看
以下是引用一世天蓝在2017-05-19 07:51:15的发言 >7楼

编程一个数据交换的程序,应该很简短把。增加个中间变量用于存放要交换的数据,3个变量做一个交换,一个3条mov就解决了。、之所以说用数据交换,是为了避免使用循环指令,每个扫描周期只交换1次数据,循环指令是一个周期交换完所有数据,所以数据太多,担心扫描超时时,不好用循环指令,就用数据交换,反过来数据少时,用循环指令更新快一点。

以下是引用WWCWWC在2017-05-18 17:23:37的发言 >6楼:道理似乎是这样的。...

引用6楼详细内容:

道理似乎是这样的。

但你仔细想一想这个SWAP指令是高、低字节的交换,而并不支持字之间的交换这是其一,当然通过编辑程序交换字应该是可以的,但已经违背了编程的精简宗旨。

其二、如果不使用循环指令,数据这么移动?

所以,我认为针对于数据比较的程序用指针和循环的配合使用应该说,是比较精简的一种方法。


以下是引用一世天蓝在2017-05-18 09:46:34的发言 >4楼:担心数据太多使用循...

引用4楼详细内容:

担心数据太多使用循环指令不好的话,可以使用数据交换指令,SWAP。。。。冒泡法在单片机里也是常见的。

实际上你的担心大可不必,200samrt 系统默认程序扫描工作时间为500mS的周期。

而一般我们编辑的程序大多均在5~10mS之间,到达系统报警时间远远未到达这个标定的时间值。

你对数据交换处理当然也是一种办法,说到底没有对与错,只有精简与不精简之分(我这里是指同样的功能,编辑的程序段越少越精简),这也是人工编程的另一种魅力所在。

曾经在讲解第三方plc课程时,挂在我口头上的那句话,在没有合适的指令调用或者没有搞明白一些指令组合使用前,千万别使用。可以用基本指令编辑的暂时用基本指令编辑,因为目的只有一个,程序的安全、稳定是最重要的,说到另一个话题,就是上面说的程序扫描时间,如果用基本指令,相对比较肯定会比功能指令的程序程序扫描周期会大一些,但因为基本指令会使用,逻辑相对要好理解。一个工作周期5mS与一个工作周期20mS的plc,在一般工况下几乎无法区分的反应的速度。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9034条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。