找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
{{itemCategory}}
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
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 开始难道不行吗!
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!