程序请教

NET 1

 I      I0.0        Q0.0                               Q0.0
 I----I     I------I       I---------I  P  I-------(  R  )
 I                                                               0
 NET 2

 I      I0.0        Q0.0                               Q0.0
 I----I     I------I   /   I---------I  P  I-------(  S  )
 I                                                               0
 I
 设I0.0接通时间大于3个PLC扫描周期。
 I0.0接通后的第一个扫描周期:NET 1 不执行;NET 2执行 Q0.0=1。
 I0.0接通后的第二个扫描周期:NET 1执行Q0.0=0;NET 2 不执行。
 问题是,在I0.0接通后的第二个扫描周期的执行过程中,NET 2 之所以不执行,原因是什么?
 1.由于NET 1执行Q0.0=0,在NET 2的
    I0.0    Q0.0
 I----I     I------I   /   I---------接通,但是不能造成上升沿脉冲-----I  P  I----的触发,所以NET 2不执行。
 2.还是其它什么原因?

最佳答案

原因是你对过程映像不理解。
  应该说第一个扫描周期I0.0接通,Net1和Net2都不接通(但都有执行),I0.0接通信号被推入PII输入过程映像中,但不影响本周期的程序,第二个扫描周期,因为在PII中I0.0为1,而过程输出映像PIQ对应的Q0.0为0,所以Net1仍不接通,而Net2网路接通,Q0.0置1,并推入PIQ中,第三个扫描周期,PII中I0.0仍为1,PIQ中的Q0.0也为1,所以Net1网路接通,Q0.0复位为0,注意,此周期内PIQ中的Q0.0仍为1,只有当此周期结束时Q0.0复位后的0才会被推入到PIQ中,此时NET2中Q0.0的RLO值仍为1,所以Net2不接接通。
  问题的关键是影响网路能否接通的是RLO,而影响RLO的是过程映像。过程映像在程序当前扫描周期结束时更新,数据用于下一扫描周期。而不是你想象的Net1将Q0.0复位后,立即影响Net2.
  这就是你要找的原因。
 上升沿触发─|P|─触点的功能是:允许一次扫描中每次执行"关闭至打开"转换时电源流动。因为程序中你将此触发点放置在Q0.0之后,所以在某一个周期内,无论I0.0还是Q0.0的0到1变化都将会让该触点动作,所以就出现了人面桃花所模拟的结果一样,Q0.0只接通一下,就一直断开,而不是Ruixm所说的单按钮启停,单按钮启停程序应将上升沿触发─|P|─触点放置在I0.0之后,Q0.0之前。

提问者对于答案的评价:
ok

专家置评

这个问题的关键是对过程映像区的理解和上升沿触发指令的理解。从木头牛的回答中可以看出,你对过程映像区还是有一定认识的。但是你有一个关键点的描述是错误的:“第三个扫描周期,PII中I0.0仍为1,PIQ中的Q0.0也为1,所以Net1网路接通,Q0.0复位为0,注意,此周期内PIQ中的Q0.0仍为1,只有当此周期结束时Q0.0复位后的0才会被推入到PIQ中,此时NET2中Q0.0的RLO值仍为1,所以Net2不接接通。”此周期内PIQ中的Q0.0并不是一直为1。Net2会被接通。过程映像区是CPU与外部地址读写的缓存区。如果这个地方是输入缓存Ix.x,没有问题,它的状态会保持到下一次更新映像区。但是对于Qx.x,只要置位为1,后边指令如果有读该位的指令时,状态都会为1。
 也许你会说,只有当此周期结束时Q0.0复位后的0才会被推入到PIQ中。
 这个说法没问题,但是输出映象区是否被更新,影响的是外部实际的输出通道是否变化,CPU本身并不去读输出映像区的值,它只读输入映像区的值。大家可以看一下 shine 的论述,从他所列的 N-1 到 N+2 周期的逻辑关系,就可以清楚的知道各周期的真实状态。
 所以,shine 的论述更准确。

 

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日
下一篇 2021年7月5日

相关推荐

  • 200CN通讯

    现场有2个226CPU 和2个触摸屏,1个PLC带一个触摸屏,2个PLC互相通讯,我想问下,2个触摸屏做变量要不要分开做呢?比如2个触摸屏都用到同一个变量,会不会使2个P…

    SIMATIC S7-200 2018年1月1日
  • 西门子200与ABB 510变频器通讯

    我用西门子200与ABB ACS510变频器通讯,采用西门子的modbus指令库,刚开始只是写频率,可以通讯上;然后我加了启停,就通讯不上了;请问能不能给我个启停的实例;…

    SIMATIC S7-200 2017年11月20日
  • PLC中BCD和BIN指的是什么意思?

    常常在PLC书上看到BCD码和BIN码,这都是指的什么意思呢?大家能举个例子给我说明一下吗,就是说什么时候用的BCD码?BCD码和BIN是个什么意思? 最佳答案 1、BCD码——是…

    SIMATIC S7-200 2021年7月5日
  • 怎样产生40个连续的分布脉冲

    我需要在程序中产生顺序排列的40个脉冲,每个脉冲的脉宽都是10毫秒,依次寄存在从M3.0到M7.7共40个位中,我不甘心用40条指令的笨办法,哪位能教教我用循环的办法完成这个任务?…

    SIMATIC S7-200 2021年7月5日
  • S7200技术支持

    1.高速计数的计数功能是不是在第一次扫描初始化后就具备了,并且在全局及任何的扫描周期内也都具备了计数功能?2.在所有程序内,能反复去激活HSC吗3.我监控过状态表,只要执行初始化H…

    SIMATIC S7-200 2021年7月5日
  • 200 程序

    现在有一段程序,我不太理解里面的LB30 LB31 LB32  他们是怎样命名? 他们里面的值会一直保存吗?他们的相关资料在哪里?…

    SIMATIC S7-200 2021年7月5日
  • 驱动步进电机的s7-200cn型号

    现有一台s7-200cn,为6es7 214-2bd23-0xb8,是不是不能驱动步进电机,另外希望能有plc和驱动器的连线图 最佳答案 6es7 214-2b…

    SIMATIC S7-200 2017年11月29日
  • S7-200 与仪表MODBUS RTU通讯求帮忙分析,求案例,求文档

    我现在是与EASTRON 的SDM630 MODBUS电表通讯,搞了好几天一直通讯不上,看了他的说明书还是没有理解,不知道我发送数据发送到从站什么地址,没看懂说…

    2021年7月5日
  • S7-200CPU 224XP CN 脉冲输出

    请高手指教:我的CPU是S7-200 XP CN交流220V电源供电的,继电器输出类型。网上资料显示可以实现24VDC的100KHz的高速脉冲输出,但是继电器输…

    SIMATIC S7-200 2021年7月4日
  • S7-200 Modbus主站库指令

    使用modbus主站库指令,调用度写请求模块。如果在使能一个请求模块的过程中,将该模块的使能清除,会怎么样?MBUS_MSG模块会报错?完成位还会置位吗?如果在一个请求使能过程中,…

    SIMATIC S7-200 2021年7月5日

发表回复

登录后才能评论