MODBUS 功能码05/15的问题

?功能码05是写单个线圈

功能码15是写多个线圈

手册里有句话:输出点不是被强制,用户程序可以重写由modbus的请求而写入的值 

PLC做从站,计算机发送01 0F 00 00 00 08 01 FF BE D5 

程序是试验程序 就用I0.0去点Q0.0,I0.0不闭合,Q0.0不输出

这时发现输出点,Q0.0灭,Q0.1~Q0.7亮。按理说应该全都亮吧
把程序改动,I0.0去点Q0.1,再发送一遍发现Q0.0亮,Q0.1灭,Q0.2~Q0.7亮

计算机发送01 0F 00 00 00 08 01 01 CRC码,程序还是I0.0去点Q0.0,依旧点不亮Q0.0,PLC返回代码正常


怎么去重写modbus请求呢?比如怎么选择性去输出Q0.0?

问题补充:
谢谢半瓶醋,dyhhh,wb210xa
wb210xa所说:如果希望看到由程序和上位下发命令的不同变化,其实很简单,找个地址如I0.1或其他任何地址作为程序赋值和上位赋值的切换开关。当该开关为0时,程序赋值,当开关为1时,上位赋值。
因为我用的是MODBUS指令库,库程序上锁啊,我不知道上位赋值在哪,该怎么处理?能详细指点下吗?谢谢各位了

最佳答案

正如楼上所述,楼主的原因出现在对同一Q0.0线圈出现重复赋值现象。
1)对于PLC程序来说,由于I0.0直接赋值给Q0.0,而PLC扫描时间很短,同时不断的执行。而上位计算机发送时只是一瞬间赋值为1,赋值完成后很快就被PLC程序刷新成0了,因此,楼主只能看到0,而不是楼主希望的1;
2)楼主如果希望看到由程序和上位下发命令的不同变化,其实很简单,找个地址如I0.1或其他任何地址作为程序赋值和上位赋值的切换开关。当该开关为0时,程序赋值,当开关为1时,上位赋值。修改一下PLC程序在不同情况下把相关的值输出到Q0.0,这时楼主就可以看到希望的变化了。

提问者对于答案的评价:
因为我用的是MODBUS指令库,我不知道上位赋值在哪,地址在哪?能详细指点下吗?

专家置评

已阅,最佳答案正确。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月6日 上午1:12
下一篇 2018年12月6日 上午1:12

相关推荐

  • 200系统手册例子PC与200自由通讯

    系统手册例子PC与200自由通讯,请问PC上应用什莫软件? 最佳答案 在”深入浅出200“中介绍了如何使用操作系统自带的”超级终端“进行自由口通讯的例子,同时你也可以下载一些”串口…

    SIMATIC S7-200 2021年7月5日
  • moudbus问题

    如图,他addr写着CPU作为从站地址不是1吗,但是右边写着地址是2。还有下面的&VB200什么意思? 问题补充:MBUS_INIT初始化从站指令,也就是说CPU当主站,通…

    2021年7月5日
  • 自由口与多个仪表通信的问题

    用自由口与多个仪表进行通信 SMB87设置为2#10110100 通过定时用一个XMT对仪表进行轮询,利用发送完成中断来进行接收,在执行XMT前对SM87.7进…

    SIMATIC S7-200 2021年7月4日
  • 224XP端口1协议

    我现在用端口0用USS和变频器通信,因为是编程软件是SP4的,这样我把USS_INIT的MODE引脚设为1,就把端口0改为USS协议了,那么端口1的协议是PPI吗 最佳答案 两个端…

    SIMATIC S7-200 2020年10月31日
  • 国产编程电缆是 PC ADAPTER USB (6ES7 972-0CB20-0XA0)的inf文件

    国产编程电缆是 PC ADAPTER USB (6ES7 972-0CB20-0XA0)   &nb…

    SIMATIC S7-200 2021年7月5日
  • s200 子程序 零散问题

    关于s200的子程序,我继续问一些很基本的问题,还烦请前辈指教。1:在主程序里,用了一个定时器T38,计数器C0,我想在子程序中读出他们的数值,比如。直接把C0(或T38)的值用转…

    2017年11月26日
  • MODBUS中CRC校验码计算原理

    看了网络上的很多资料,越看越迷糊 /******************************* 在代数编码理论中,将一个码组表示为一个多项式,码组中各码元当…

    SIMATIC S7-200 2021年7月4日
  • 如何实现485接口的无线通信功能!

    刚开始接手一个项目,要加入无线通信功能(100米),无线通信的控制端A是 CPU226的PLC,利用485接口连接到一个带485口的调制解调器上,无线通信的受控&nbsp…

    SIMATIC S7-200 2021年7月5日
  • 模拟量功能模块的使用

    ⑴在使用模拟量转换功能块Scale_I_to_R时,它的输出是VD(是不是实数?),⑵之后如果要用比较(上下限)来输出Q,是直接使用(双字)整数比较?实数比较?是否要通过数字转换后…

    SIMATIC S7-200 2021年7月5日
  • 请教一下有关S7200 PID手自动切换的问题

    我用S7200PID向导添加了手自动切换功能,我在没执行过手动之前,设置一个P值,这时候PID输出是正常的,但是只要执行过这个手动再切换会自动后,这时输出就基本等于之前手动输出的值…

    2017年6月19日