DI/DO的地址什么时候用I什么时候用piw

新手问题简单说,我在组态的时候,加入DI/DO,AI/AO这种数字模拟SM模块的时候,会自动分配地址,数字量地址从0,4,8开始,模拟量地址从256,272,284。
但是我想调用这些地址,什么时候用I0.1,Q2.6,PIW272。
就是什么时候加P,什么时候又不加了,不太理解所谓的外部输入输出

问题补充:
"你的CPU 的支持IO 区大小是1024 byte,那么你模拟量输入模块的起始地址是256的话,你在程序里 通过IW,PIW 来读取到的值是一样的"
iw是不只能使用1024 byte内,那模拟已经是256以上的了,用iw也读不到256以上的piw数据啊

最佳答案

1;I,Q 是过程映像区,PI,PQ 是外设区。他们的存取方式不一样罢了,IB0的值是和PIB0 是相等的,I,Q 区是CPU 的OB1循环结束的时候 CPU 读入外部PI 区数据到I 区数据,同时把Q区数据复制到PQ区里面。
2:PI,PQ区只能以非位的形式来存取,I,Q是可以以位的形式来存取。
3:每个CPU的I,Q区的大小是有限制的,PI ,PQ区存储较大,一直以来有个误区就是模拟量时PIW,PQW,我告诉你没有这回事。加P只是CPU直接从外部模块读取数据到PLC,不经过IO 过程映像区罢了。
比如,你的CPU 的支持IO 区大小是1024 byte,那么你模拟量输入模块的起始地址是256的话,你在程序里 通过IW,PIW 来读取到的值是一样的,只不过IW 和OB1 的扫描周期相关,PIW是实时的模拟量通道A/D转换的数值。
4:所以你可以可以加个P来读取数据,但是有的P 区,不能以I 区来读取,为什么的因为IO区的大小是有限制的,一般来说比P区要小多了,你的CPU 的支持IO 区大小是1024 byte
那么 你可以以IB1023 来读取数据,也可以用PIB1023来读取,但是PIB1024,就不能用IB1024来读取了,因为你的PLC 的影像区最大1024 BYET(0-1023).
5:比如某些输入输出的开关量信号,要求模块信号变化时,PLC 能够立即取得信号,不经过过程映像区。你就可以再程序执行 如下类似语句,比如I0.0 有变化,CPU要求立即得到当前信号,你就可以这样来做
L PIB0
T IB0
这样模块上的信号就被立即刷新到IB0里了。


你的CPU 的支持IO 区大小是1024 byte,那么你模拟量输入模块的起始地址是256的话,你在程序里 通过IW,PIW 来读取到的值是一样的"
iw是不只能使用1024 byte内,那模拟已经是256以上的了,用iw也读不到256以上的piw数据啊

如果你的PLC 支持的IO 映像区是1024 BYTES ,一般每个PLC 都支持65535 BYTES的PI,PQ区
PIW256 包含 两个字节PIB256,PIB257,你的映像区是1024 你说 用PIW256 和IW256 来读不是一样吗?只不过PIW的值和OB1循环无关罢了!
你的数字量模块 你起始地址 你设为 256 看看,只要CPU的映像区最大超过256 你都可以讲数字量起始地址设为256.谁告诉你模拟量 非得从256开始的,我非要有点个性我从10 开始难道不行吗!

提问者对于答案的评价:
万分感谢前辈的解答!

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc198928.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年10月24日 下午6:54
下一篇 2017年10月24日 下午6:55

相关推荐