找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
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 和IW 都可以,CPU 输入/输出映像区有一定范围,对于没有相应
的映像缓冲区的输入地址,一定采用PIW 指令,而一般外设输入地址,都是没有映像缓冲
区的。对于有映像缓冲区的输入地址,用PIW 和IW 都可以,但用PIW,表示直接取地址
内的数据而非映像缓冲区的数据,相当于立即读取。对于输出亦是如此。
PIW 是实时输入,在程序的一个循环周期中是可能变化的,IW 不会变化,IW 和PIW
输入的都是16bit 数。
PIW 是直接去读物理地址,可以理解为直接去模板采集信号;IW 是去输入、输出映像
区去读取。PIW 响应是实时的,也就是说在你程序执行的时候读取当时的值,但效率低;IW
稍有滞后,因为IW 只是系统周期性的刷新,但是效率高。另外映像区是占用系统内存的,
所以不可以无限制的开,对于大系统来说只能取一个折中的大小,对于超出映像区的I/O 点
只能通过Pxx 来读写,而在映像区范围内的PIW/IW 都可以,但区别如前所述。
元件名称:
I 输入继电器
Q 输出继电器
M 通用辅助继电器
SM 特殊继电器
S 顺序控制继电器
V 变量存储器
L 局部变量存储器
T 定时器
C 计数器
AC 累加器
HC 高速计数器
AI 模拟量输入映像寄存器
AQ 模拟量输出映像寄存器
PI 外部输入
PQ 外部输出
DB 数据块
L 本地数据
PIW 直接取地址内的数据而非映像缓冲区的数据,相当于立即读取
PQW 立即输出
STEP 中的块
组织块OB
功能FC(Function)
功能块FB(Function Block)
系统功能SFC(System Function)
系统功能块SFB(System Function Block)
背景功能块背景DB(Instance Date Block)
共享数据块共享DB(Share Date Block)
什么是状态字?状态字的作用——西门子S7 系列PLC
状态字用于表示CPU 执行指令时所具有的状态。一些指令是否执行或以何方式执行可能取
决于状态字中的某些位;执行指令时也可能改变状态字中的某些位,也能在位逻辑指令或字
逻辑指令中访问并检测他们。状态字的结构如下:
31……………9 8 7 6 5 4 3 2 1 0
BR CC
1
CC
0
OS OV OR STA RL
O
(1) 首位检测位( )
状态字的位0 称为首位检测位。若位的状态为0,则表明一个梯形逻辑网络的开始,
或指令为逻辑串的第一条指令。CPU 对逻辑串第一条指令的检测(称为首位检测)产生的
结果直接保存在状态字的RLO 位中,经过首次检测存放在RLO 中的0 或1 被称为首位检
测结果。位在逻辑串的开始时总是0,在逻辑串指令执行过程中位为1,输出指令或与逻
辑运算有关的转移指令(表示一个逻辑串结束的指令)将清0。
(2) 逻辑操作结果(RLO)
状态字的位1 称为逻辑操作结果RLO(Result of Logic Operation)。该位存储逻辑
指令或算术比较指令的结果。在逻辑串中,RLO 位的状态能够表示有关信号流的信息。RLO
的状态为1,表示有信号流(通);为0,表示无信号流(断)。可用RLO 触发跳转指令。
(3) 状态位(STA)
状态字的位2 称为状态位。状态位不能用指令检测,它只是在程序测试中被CPU 解释
并使用。如果一条指令是对存储区操作的位逻辑指令,则无论是对该位的读或写操作,STA
总是与该位的值取得一致;对不访问存储区的位逻辑指令来说,STA 位没有意义,此时它
总被置为1。
(4) 或位(OR)
状态字的位3 称为或位(OR)。在先逻辑“与”后逻辑“或”的逻辑串中,OR 位暂
存逻辑“与”的操作结果,以便进行后面的逻辑“或”运算。其它指令将OR 位清0。
(5) 溢出位(OV)
状态字的位4 称为溢出位。溢出位被置1,表明一个算术运算或浮点数比较指令执行
时出现错误(错误:溢出、非法操作、不规范格式)。后面的算术运算或浮点数比较指令执
行结果正常的话OV 位就被清0。
(6) 溢出状态保持位(OS)
状态字的位5 称为溢出状态保持位(或称为存储溢出位)。OV 被置1 时OS 也被
置1;OV 被清0 时OS 仍保持。所以它保存了OV 位,可用于指明在先前的一些指令执行
中是否产生过错误。只有下面的指令才能复位OS 位:JOS(OS=1 时跳转);块调用指令
和块结束指令。
(7) 条件码1(CC1)和条件码0(CC0)
状态字的位7 和位6 称为条件码1 和条件码0。这两位结合起来用于表示在累加器1
中产生的算术运算或逻辑运算结果与0 的大小关系;比较指令的执行结果或移位指令的移
出位状态。详见表4.4.2.1 和表4.4.2.2。
4.4.2.1 算术运算后的CC1 和CC0
CCl
CC
O
算术运算
无溢出
整数算术运算
有溢出
浮点数算术运算
有溢出
0 0 结果=0
整数加时产生负范
围溢出
平缓下溢
0 1 结果<0
乘时负范围溢出;
加、减、取负时正溢
出
负范围溢出
1 0 结果>0
乘、除时正溢出;
加、减时负溢出
正范围溢出
1 1 - 在除时除数为0 非法操作
4.4.2.2 比较、移位和循环移位、字逻辑指令后的CC1 和CC0
CCl CC
O
比较指令移位和循环指令字逻辑指令
0 0 累加器2=累加器1 移位=0 结果=0
0 1 累加器2<累加器1 - -
1 0 累加器2>累加器1 - 结果≠0
1 1 不规范移出位=1 -
(只用于浮点数比较)
(8) 二进制结果位(BR)
状态字的位8 称为二进制结果位。它将字处理程序与位处理联系起来,在一段既有位
操作又有字操作的程序中,用于表示字操作结果是否正确(异常)。将BR 位加入程序后,
无论字操作结果如何,都不会造成二进制逻辑链中断。在LAD 的方块指令中,BR 位与ENO
有对应关系,用于表明方块指令是否被正确执行:如果执行出现了错误,BR 位为0,ENO
也为0;如果功能被正确执行,BR 位为1,ENO 也为1。
在用户编写的FB 和FC
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城