回复:博图编程问题

'Razor

西门子1847工业学习平台

  • 帖子

    3208
  • 精华

    41
  • 被关注

    222

论坛等级:至圣

注册时间:2008-03-31

钻石 钻石 如何晋级?

发布于 2017-03-29 16:58:24

8楼

哎呀,有人提这种问题,必须要好好回答。

请记住下面的话,这都是那些牛逼地不行不行的人说的。

以迂为直:希望达到直接目的,而采用间接手法

Any problem in computer science can be solved by  another layer of indirection.

计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决。

Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius— and a lot of courage— to move in the opposite direction.

任何一个有智力的笨蛋都可以把事情搞得更大,更复杂,也更激烈。往相反的方向前进则需要天分,以及很大的勇气。——爱因斯坦

解决方法如下:

//为详细说明,故用此基本办法

//还可以用指针+块操作完成。

A I0.4

=M0.0

A I0.5

=M0.1

... ...//重复操作

A I2.2

= M0.6


A I2.3

= M1.0

A I2.4

= M1.1

A I2.5

= M1.2

... ...//重复操作


然后就可以直接操作,MB0和MB1,也就是MW0了,可以使用比较指令处理。

if MB0==2#01111111 

MB80.1=TRUE

if MB1==2#01111111 

MB80.2=TRUE

或者

if MW0==W#16#7F7F

{

    MB80.1=TRUE

    MB80.2=TRUE

}


怎么样?好玩不?

缺点:

        使用命令条数多了一些,占用了额外的程序存储空间(针对上面的笨办法而言);

        监控时单个位状态看起来没有那么直观了;

优点:

         关键代码不那么冗长了,

         位状态可以集中查看,地址连续了;

         数据的后续处理方便了,(如需要通讯传输的话);

3楼和7楼说得也都很中肯,点赞一下。

个人感觉,无论是谁编程时,都应该制订和遵从这样的“规范”或者说是”契约“,凡是逻辑部分,统统使用M或者DB等”中间层“来组织处理,方便组织中不同成员间的相互配合,小规模的程序开发可能看不出多少优点来,一旦程序上了规模,便会发现采取这样的措施能让每个人都做的很顺手,很轻松。


如果你觉得上面的话对你有帮助,麻烦顺手点个赞,谢谢!

少即是多
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54622条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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