回复:一本正经“消灭”双线圈问题

已锁定

芳季

西门子1847工业学习平台

  • 帖子

    15812
  • 精华

    103
  • 被关注

    988

论坛等级:至圣

注册时间:2007-08-03

钻石 钻石 如何晋级?

发布于 2022-12-12 07:03:58

31楼

展开查看
以下是引用Zane在2022-12-11 22:58:41的发言 >28楼

我强调一下吧,我讲的逻辑运算全扫描,逻辑变量只赋值一次,指的是通常二进制逻辑运算涉及的逻辑变量(也就是布尔变量)。


我从来没有公开讲过,数值处理运算的数值变量也要全扫描并且只赋值一次。


举个例子大家去试试吧


电机启停控制,有手动指令M_Cmd(1=启动),有自动指令A_Cmd(1=启动),手自动切换指令M_A(0=M,1=A),有故障信号FAULT,有运行反馈信号RUN,要求电机在运行中手自动切换指令无效。


以下是引用Zane在2022-12-09 21:47:24的发言 >15楼:所以,我的做法就是...

引用15楼详细内容:

所以,我的做法就是逻辑变量只赋值一次。


没有双线圈,多线圈的概念, 就是赋值变量的次数。

一个S一个R算赋值几次?

8个S或者R单独对一个字节里面的8个位同时置位或者复位,是不是对位操作?那么用一个movb去等效这堆东西,算数据操作还是位操作?用Bmovb去等效很多个movb是指对数据还是数组的操作?

到底一个S一个R算赋值了几次?

LD M0.0

S Q0.0 1

R Q0.1 1

R Q0.2 1

S Q0.3 1

S Q0.4 1

R Q0.5 1

R Q0.6 1

S Q0.7 1

LN M0.0

CALL SBR0

END

SBR0

LD SM0.0

= Q0.1

=Q0.2

= Q0.5

= Q0.6

LN SM0.0

= Q0.0

= Q0.3

= Q0.4

= Q0.7

END SUB

以上程序(随手写)算那样?

以上程序如果用一个movb指令代替子程序,又算哪样?

所以我真的不确定什么叫做双线圈。


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9430条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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