回复:200smart编程自定义Q输出

已锁定

yanxiao

版主

  • 帖子

    12146
  • 精华

    46
  • 被关注

    183

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2022-10-29 13:04:22

10楼

给一个思路吧,程序自己实现。

1、假设条件:

Q点的分布是无规律的,但可以通过中间变量,让中间变量的排列变得有规律。

中间变量与实际Q点就是一一对应关系,简单COPY就是了。

M0.4,M0.3,M0.2,M0.1,M0.0

分别对应5个Q点

2、实现任意操作某一Q点,5个Q点,相同工作做5次,也可以制成子程序调用5次。

3、设

VB0为Q点序号,0对应M0.0,1对应M0.1,以此类推

M2.0表示该Q点的状态,需要复制到指定M0.x上

4、定位M0.x点

用到一个指令DECO,解码指令

设VB=2,即操作第三个Q点,对应为M0.2

DECO VB0,VW2 // 执行后,VB3=0000,0100

VW分VB2和VB3两个字节,因为只有5个Q点,只用到VB3

执行DECO后,V3.2=1,其余位为0:0000,0100

5、复制M2.0状态到M0.2上

分两种情况:

如果M2.0为1,则执行OR或操作

OR VB3, MB0 // 执行后,M0.2=1,其余位不变

如果M2.0为0,则执行AND与操作

INVB VB3 // 执行后VB3=1111,1011

ANDB VB3,MB0 // 执行后MB0.2=0,其余位不变

6、实验程序,在STL模式下复制到MicroWin Smart

LD     Always_On:SM0.0

LPS                                // 兼容LAD

DECO   VB0, VW2                    // 解码

A      M2.0

ORB    VB3, MB0                    // 置位

LPP                                // 兼容LAD

AN     M2.0

INVB   VB3                         // 取反

ANDB   VB3, MB0                    // 复位

上面是单网络兼容LAD的程序,有多余的指令

双网络程序,精简如下

网络1

LD     Always_On:SM0.0

DECO   VB0, VW2                    // 解码

网络2

LD     M2.0

ORB    VB3, MB0                    // 置位

NOT

INVB   VB3                         // 取反

ANDB   VB3, MB0                    // 复位


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8941条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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