回复:模拟量批量处理六 - 修订版

Letham

西门子1847工业学习平台

  • 帖子

    2038
  • 精华

    43
  • 被关注

    360

论坛等级:至圣

注册时间:2006-04-15

白金 白金 如何晋级?

发布于 2017-10-03 21:10:12

8楼

展开查看
以下是引用question在2017-10-02 21:59:48的发言 >7楼

DATA[1]:=%IW 256: P, 只能处理一个,如果我要处理多个模拟量,需要多个这样的语句,不能用在循环中了。

以下是引用Letham在2017-10-02 21:23:19的发言 >6楼:直接使用寻址对IW ...

引用6楼详细内容:

直接使用寻址对IW 值进行读取,会不会程序可读性差了?

data数组里增加一个word类型,在外围把iw 直接传递到数组中,这样万一哪天模拟量通道坏了,只要改个程序比如DATA[1]:=%IW 256: P 即可完成程序变更。

而且,不需要模拟量地址连续

说实话,我现在对1500编程 ,就强迫自己不用”间接寻址。优化块的访问方式 好处多多!

大家还是恋恋不舍寻址啊!

以下是引用question在2017-10-02 17:41:13的发言 >2楼:方位IW,只能用P...

引用2楼详细内容:

方位IW,只能用POKE啊。


s7 300/400 好像可以这样 IW[#index], 博图不行。


谢谢。

以下是引用Letham在2017-10-02 11:20:55的发言 >1楼:竟然用索引寻址了...

引用1楼详细内容:

竟然用索引寻址了,为什么还要用peek/poke?

对,你这样用间接寻址,你可以用循环了,你代码少了?要是哪天模拟量通道坏了,做维护的人就不爽了,他可能找不到这个模拟量点在什么地方用了,他不知道怎么改程序了。除非你手把手教他DATA.CHANNEL 就是模拟量通道的地址,比如256,就代表,取IW256的值。

做程序编,要考虑后续厂家的维护,作为维护人员,我不想知道你的程序是怎么工作的,只要满足我的要求就行,我只在乎哪天模块坏了,我换个通道就行

(当然有的厂家是直接换模块,懒的改点,改程序)

就是有100个通道,需要100个Data[1]:=%IW 256;这样的语句又如何,人家至少知道IW256在什么地方用了,iw256的符号是什么?_?,你用间接寻址,人家知道这个通道在哪里用吗?坏了,怎么办 半夜打电话找你吗?外围IO,最好和处理程序分开,IO传递到数据快,IO坏了 换个就行,厂家做维护的人也不需要了解你的应用程序。I0.0坏了,本来这个点是传递到DB1.DBX0.0,现在 我加了模块,硬件接线改到I100.0,厂家维护人员 只要把I 100.0传递到DB 1.DBX0.0就行。

我见过,有的公司标准化高的,外围IO点,全部放进DB里,在应用程序内部没有用到任何IO点来进行连锁的,而且IO区到DB快 是一个一个传输的,也没有用寻址+循环的方式。


只是个人建议了,毕竟每个人编程时,有自己的思路

不过,必须为楼主的专研精神点赞!加油↖(^ω^)↗!用户用起来 简单的程序就是好程序。


人生就像一场旅行!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10844条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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