恭喜,你发布的帖子
发布于 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等”中间层“来组织处理,方便组织中不同成员间的相互配合,小规模的程序开发可能看不出多少优点来,一旦程序上了规模,便会发现采取这样的措施能让每个人都做的很顺手,很轻松。
如果你觉得上面的话对你有帮助,麻烦顺手点个赞,谢谢!
请填写推广理由:
分享
只看
楼主