技术论坛

IW与PIW,QW与PQW,这2对各什么区别

作者 主题
侠客

经验值: 744
发帖数: 285
精华帖: 0
主题:IW与PIW,QW与PQW,这2对各什么区别


只看楼主 楼主 2011-11-09 09:08:40
我在网上看了好多,好几个都说IW是数字量输入,PIW是模拟量输入,而且IW是通过映像区读取,PIW直接读取什么的,越看越糊涂了,但是我看我以前的老师(同事)就是用IW通过FC105读取模拟量的啊。有点疑惑了,来个老师解释下吧,真的很纳闷。
不会就要学,不懂就要问
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?b_id=4&a_id=926699&s_id=0&num=25

至圣

经验值: 18406
发帖数: 6291
精华帖: 137
回复:IW与PIW,QW与PQW,这2对各什么区别


只看楼主 1楼 2011-11-09 09:14:56
S7-300/400的I/Q区称为过程映像输入区(PII)/过程映像输出区(PIQ),“映像”表示它们就像镜中花、水中月,访问它们并不是访问输入/输出模块,而是访问CPU存储器中的区域。
只是在过程映像区刷新的时刻,I区和Q区的内容才与输入/输出模块中的实际值相同,因此它们并不能直接反映输入/输出的实际状态。
S7-300/400的I/Q区与PI/PQ区(外设输入/外设输出区)的关系如下:
1)访问PI/PQ区时,直接读写输入/输出模块,而I/Q区是输入/输出模块在CPU的存储区中的“映像”。
使用外设地址可以实现用户程序与I/O模块之间的快速数据传送,因此被称为“立即读”和“立即写”。在每次扫描循环开始时对P/Q区采用批量读/写的方式,因此造成了输入/输出的滞后。
2)I/Q区可以按位、字节、字和双字访问,PI/PQ区只能按字节(PIB/PQB)、字(PIW/PQW)和双字(PID/PQD)访问。
I/Q区和PI/PQ区可以使用相同的字节地址。
3)I/Q区的地址范围比PI/PQ区的小,有的S7-300CPU的I/Q区只有128B,有的CPU可以在组态时修改I/Q区的大小。
4)如果地址超出了I/Q区允许的范围,必须使用PI/PQ区来访问。例如如果I/Q区只有128B,在访问S7-300的模拟量模块时(其地址区从256号字节开始),则必须使用PI/PQ区的地址。
CPU的I区如果较大(大于256B),就可以用IW读模拟量。
追求完美
以下网友喜欢您的帖子:

  
侠客

经验值: 744
发帖数: 285
精华帖: 0
回复:IW与PIW,QW与PQW,这2对各什么区别


只看楼主 楼主 2楼 2011-11-09 11:16:50
quote:以下是引用Automann在2011-11-09 09:14:56的发言:
S7-300/400的I/Q区称为过程映像输入区(PII)/过程映像输出区(PIQ),“映像”表示它们就像镜中花、水中月,访问它们并不是访问输入/输出模块,而是访问CPU存储器中的区域。
只是在过程映像区刷新的时刻,I区和Q区的内容才与输入/输出模块中的实际值相同,因此它们并不能直接反映输入/输出的实际状态。
S7-300/400的I/Q区与PI/PQ区(外设输入/外设输出区)的关系如下:
1)访问PI/PQ区时,直接读写输入/输出模块,而I/Q区是输入/输出模块在CPU的存储区中的“映像”。
使用外设地址可以实现用户程序与I/O模块之间的快速数据传送,因此被称为“立即读”和“立即写”。在每次扫描循环开始时对P/Q区采用批量读/写的方式,因此造成了输入/输出的滞后。
2)I/Q区可以按位、字节、字和双字访问,PI/PQ区只能按字节(PIB/PQB)、字(PIW/PQW)和双字(PID/PQD)访问。
I/Q区和PI/PQ区可以使用相同的字节地址。
3)I/Q区的地址范围比PI/PQ区的小,有的S7-300CPU的I/Q区只有128B,有的CPU可以在组态时修改I/Q区的大小。
4)如果地址超出了I/Q区允许的范围,必须使用PI/PQ区来访问。例如如果I/Q区只有128B,在访问S7-300的模拟量模块时(其地址区从256号字节开始),则必须使用PI/PQ区的地址。
CPU的I区如果较大(大于256B),就可以用IW读模拟量。

老师,您就是廖老师吧?我大学的教材就是您编的,现在还随身带着的。对于我提的这个问题,是不是我一直用PIW/PQW就可以,用IW就得看情况了?
不会就要学,不懂就要问
以下网友喜欢您的帖子:

  
至圣

经验值: 18406
发帖数: 6291
精华帖: 137
回复:IW与PIW,QW与PQW,这2对各什么区别


只看楼主 3楼 2011-11-09 12:41:12
如果地址超出了I/Q区允许的范围,就需要改用PI/PQ区地址了,I/Q区允许的范围可查模块手册。
追求完美
以下网友喜欢您的帖子:

  
至圣

经验值: 13053
发帖数: 4961
精华帖: 81
回复:IW与PIW,QW与PQW,这2对各什么区别


只看楼主 4楼 2011-11-09 13:19:24
“IW是数字量输入,PIW是模拟量输入”
这种说法是错误的,只能说IW是过程映像输入区里的,PIW是外设输入里的
 
以下网友喜欢您的帖子:

  
侠客

经验值: 744
发帖数: 285
精华帖: 0
回复:IW与PIW,QW与PQW,这2对各什么区别


只看楼主 楼主 5楼 2011-11-09 13:55:53
quote:以下是引用youhm在2011-11-09 13:19:24的发言:
“IW是数字量输入,PIW是模拟量输入”
这种说法是错误的,只能说IW是过程映像输入区里的,PIW是外设输入里的

老师,IW和PIW有没有哪个是万能的?
不会就要学,不懂就要问
以下网友喜欢您的帖子:

  
至圣

经验值: 13053
发帖数: 4961
精华帖: 81
回复:IW与PIW,QW与PQW,这2对各什么区别


只看楼主 6楼 2011-11-09 14:04:24
对于输入不管是数字量还是模拟量,都有PI区的对应地址,过程映像区是有限的,只在规定的范围内才有I区对应地址,超出过程映像区的输入只能以PI来直接访问外设。
 
以下网友喜欢您的帖子:

  
侠客

经验值: 744
发帖数: 285
精华帖: 0
回复:IW与PIW,QW与PQW,这2对各什么区别


只看楼主 楼主 7楼 2011-11-09 15:23:12
quote:以下是引用youhm在2011-11-09 14:04:24的发言:
对于输入不管是数字量还是模拟量,都有PI区的对应地址,过程映像区是有限的,只在规定的范围内才有I区对应地址,超出过程映像区的输入只能以PI来直接访问外设。

也就是说,各有各用的范围,谁也替代不了谁,是这样么
不会就要学,不懂就要问
以下网友喜欢您的帖子:

  
侠士

经验值: 1129
发帖数: 27
精华帖: 0
回复:IW与PIW,QW与PQW,这2对各什么区别


只看楼主 8楼 2011-11-09 16:37:45
对于模拟量输入,用PIW和IW都可以,CPU输入/输出映像区有一定范围,对于没有相应的映像缓冲区的输入地址,一定采用PIW指令,而一般外设输入地址,都是没有映像缓冲区的。对于有映像缓冲区的输入地址,用PIW和IW都可以,但用PIW,表示直接取地址内的数据而非映像缓冲区的数据,相当于立即读取。对于输出亦是如此。
PIW是实时输入,在程序的一个循环周期中是可能变化的,IW不会变化,IW和PIW输入的都是16bit数。
PIW是直接去读物理地址,可以理解为直接去模板采集信号;IW是去输入、输出映像区去读取。PIW响应是实时的,也就是说在你程序执行的时候读取当时的值,但效率低;IW稍有滞后,因为IW只是系统周期性的刷新,但是效率高。另外映像区是占用系统内存的,所以不可以无限制的开,对于大系统来说只能取一个折中的大小,对于超出映像区的I/O点只能通过Pxx来读写,而在映像区范围内的PIW/IW都可以,但区别如前所述。
PLC
以下网友喜欢您的帖子:

  
侠圣

经验值: 3372
发帖数: 443
精华帖: 0
回复:IW与PIW,QW与PQW,这2对各什么区别


只看楼主 9楼 2011-11-09 16:47:08
quote:以下是引用冷雨清风在2011-11-09 16:37:45的发言:
对于模拟量输入,用PIW和IW都可以,CPU输入/输出映像区有一定范围,对于没有相应的映像缓冲区的输入地址,一定采用PIW指令,而一般外设输入地址,都是没有映像缓冲区的。对于有映像缓冲区的输入地址,用PIW和IW都可以,但用PIW,表示直接取地址内的数据而非映像缓冲区的数据,相当于立即读取。对于输出亦是如此。
PIW是实时输入,在程序的一个循环周期中是可能变化的,IW不会变化,IW和PIW输入的都是16bit数。
PIW是直接去读物理地址,可以理解为直接去模板采集信号;IW是去输入、输出映像区去读取。PIW响应是实时的,也就是说在你程序执行的时候读取当时的值,但效率低;IW稍有滞后,因为IW只是系统周期性的刷新,但是效率高。另外映像区是占用系统内存的,所以不可以无限制的开,对于大系统来说只能取一个折中的大小,对于超出映像区的I/O点只能通过Pxx来读写,而在映像区范围内的PIW/IW都可以,但区别如前所述。

是不是可以说PIW可以代替IW?
 
以下网友喜欢您的帖子:

  
游民

经验值: 100
发帖数: 22
精华帖: 0
回复:IW与PIW,QW与PQW,这2对各什么区别


只看楼主 10楼 2011-11-09 17:14:02
quote:以下是引用冷雨清风在2011-11-09 16:37:45的发言:
对于模拟量输入,用PIW和IW都可以,CPU输入/输出映像区有一定范围,对于没有相应的映像缓冲区的输入地址,一定采用PIW指令,而一般外设输入地址,都是没有映像缓冲区的。对于有映像缓冲区的输入地址,用PIW和IW都可以,但用PIW,表示直接取地址内的数据而非映像缓冲区的数据,相当于立即读取。对于输出亦是如此。
PIW是实时输入,在程序的一个循环周期中是可能变化的,IW不会变化,IW和PIW输入的都是16bit数。
PIW是直接去读物理地址,可以理解为直接去模板采集信号;IW是去输入、输出映像区去读取。PIW响应是实时的,也就是说在你程序执行的时候读取当时的值,但效率低;IW稍有滞后,因为IW只是系统周期性的刷新,但是效率高。另外映像区是占用系统内存的,所以不可以无限制的开,对于大系统来说只能取一个折中的大小,对于超出映像区的I/O点只能通过Pxx来读写,而在映像区范围内的PIW/IW都可以,但区别如前所述。

PIW是实时的,是不是就不受系统刷新的影响,但是如果不受系统刷新影响的话,我们在进行读取的时候 ,都 一样是要受系统刷新影响的,那不是就和IW是一样的吗?
只是我知道,一般用第三方的I/O时,在编程时,对方说明书上就会强调要用PIW。
活着充实
以下网友喜欢您的帖子:

  
至圣

经验值: 10907
发帖数: 4325
精华帖: 26
回复:IW与PIW,QW与PQW,这2对各什么区别


只看楼主 11楼 2011-11-09 17:55:22
、IW和PIW的区别:
IW:是数字量输入模块的输入信号状态,在每次循环扫描开始时,系统将它们存入过程映像区中的输入表中,即每一循环扫描周期刷新一次。该区可以以位(bit)、字节、字或双字为单位进行访问。
该区多用于数字量(开关量)的输入信号?。
PIW:是外设I/O存储区。不经过过程映像区输入表直接访问输入模块,即不受扫描周期的约束。该区不能以位(bit)为单位访问外设I/O存储区,只能以字节、字或双字为单位进行访问。
该区多用于模拟量的输入信号。
、QW与PQW:
两者均为输出,与IW和PIW同理。
一日三省吾身
以下网友喜欢您的帖子:

  
奇侠

经验值: 7649
发帖数: 1959
精华帖: 1
回复:IW与PIW,QW与PQW,这2对各什么区别


只看楼主 12楼 2011-11-09 19:47:04
《西门子S7可编程序控制器-STEP7编程指南》的5.2.1部分很详细,可以参考一下。
文建
以下网友喜欢您的帖子:

  
至圣

经验值: 10195
发帖数: 2115
精华帖: 3
回复:IW与PIW,QW与PQW,这2对各什么区别


只看楼主 13楼 2011-11-09 21:52:33
直接IO和间接IO,这样理解比较直观!
Kapok
以下网友喜欢您的帖子:

  
侠客

经验值: 711
发帖数: 562
精华帖: 0
回复:IW与PIW,QW与PQW,这2对各什么区别


只看楼主 14楼 2011-11-11 10:09:52
p是外部设备的意思,

理解了这个词就行啦
you must control your mood
以下网友喜欢您的帖子:

  
游民

经验值: 62
发帖数: 34
精华帖: 0
回复:IW与PIW,QW与PQW,这2对各什么区别


只看楼主 15楼 2011-11-12 19:13:05
quote:以下是引用冷雨清风在2011-11-09 16:37:45的发言:
对于模拟量输入,用PIW和IW都可以,CPU输入/输出映像区有一定范围,对于没有相应的映像缓冲区的输入地址,一定采用PIW指令,而一般外设输入地址,都是没有映像缓冲区的。对于有映像缓冲区的输入地址,用PIW和IW都可以,但用PIW,表示直接取地址内的数据而非映像缓冲区的数据,相当于立即读取。对于输出亦是如此。
PIW是实时输入,在程序的一个循环周期中是可能变化的,IW不会变化,IW和PIW输入的都是16bit数。
PIW是直接去读物理地址,可以理解为直接去模板采集信号;IW是去输入、输出映像区去读取。PIW响应是实时的,也就是说在你程序执行的时候读取当时的值,但效率低;IW稍有滞后,因为IW只是系统周期性的刷新,但是效率高。另外映像区是占用系统内存的,所以不可以无限制的开,对于大系统来说只能取一个折中的大小,对于超出映像区的I/O点只能通过Pxx来读写,而在映像区范围内的PIW/IW都可以,但区别如前所述。

我想说对数字输入piw和iw正常应该都可以,但是对模拟的就不一定了,有可能映像区没那么大,最好用piw.
我是新来的,呵呵
以下网友喜欢您的帖子:

  
侠士

经验值: 1192
发帖数: 386
精华帖: 4
回复:IW与PIW,QW与PQW,这2对各什么区别


只看楼主 16楼 2011-11-12 21:39:28
学习了,谢谢, 现在懂点了
 
以下网友喜欢您的帖子:

  
侠士

经验值: 1710
发帖数: 257
精华帖: 0
回复:IW与PIW,QW与PQW,这2对各什么区别


只看楼主 17楼 2011-12-25 16:50:03
谢谢 工程师们的回答。。。。。我基本懂了
 
以下网友喜欢您的帖子:

  
游侠

经验值: 408
发帖数: 230
精华帖: 1
回复:IW与PIW,QW与PQW,这2对各什么区别


只看楼主 18楼 2012-01-10 18:07:19
终于搞清楚了。我说怎么在STEP7中监测,PIW有值,而IW没有值呢,原来是超出了I/O区的范围就只能用PIW了。学习中……
如果你认为是对的事情,就要勇敢地去尝试;如果不去尝试,又怎么会知道结果呢?
以下网友喜欢您的帖子:

  
侠客

经验值: 744
发帖数: 285
精华帖: 0
回复:IW与PIW,QW与PQW,这2对各什么区别


只看楼主 楼主 19楼 2012-01-11 12:00:47
quote:以下是引用youhm在2011-11-09 14:04:24的发言:
对于输入不管是数字量还是模拟量,都有PI区的对应地址,过程映像区是有限的,只在规定的范围内才有I区对应地址,超出过程映像区的输入只能以PI来直接访问外设。

老师,我这几天拿了本STEP7编程指南,仔细看了下这个,但是还有一点我弄不明白,希望您能解疑下。书上有句话:例如S7-300系列PLC过程映像输入区为128个字节,如果设定模块逻辑地址大于128个字节,那么该模块只能通过外设输入区读取。 这个句话中的128个字节怎么理解,大于128字节什么概念是,老师能举个例子么?非常感谢
不会就要学,不懂就要问
以下网友喜欢您的帖子:

  
收起
IW与PIW,QW与PQW,这2对各什么区别
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。