PC机用Window API与S7-224XP Modbus通讯 停止位的问题

我上位机用Window API与S7-224XP modbus通讯, PLC做主站,用的是modbus库指令, PC机做从站, 用Windows API来读主站指令并返回数据 (实际上是用PC机模拟传感器信号). 现在遇到一个问题,百思不得其解,请教各位高手:
当PC机读主站发的信号时,需要设成N,8,1才能正确读出;但是当返回数据需要写串口时, 却需要设成N,8,2 PLC主站才能收到并解析正确。
这里1,2是停止位位数.

这是什么原因呢?
我的电脑是笔记本,没有串口,用的是USB转485的串口。 串口号是7(可以改). 已经试过, 在设备管理器里的端口设置中设停止位不影响。
如附件所示, PLC主站发出的信息(16进制)为01 04 00 40 00 04 F0 1D
要求从地址Hx64处返回4个字的寄存器值, 如果设为N,8,1, 用Windows API读出的信息正确,但是设为N,8,2, 则读出的信息为01 10  40 04 1D.

问题补充:
又发现一个问题,如果以N,8,1打开串口,读后, 关闭串口,然后以N,8,2打开串口,写串口后。再以N,8,1打开串口,读出来的又不对了。
但是用网上的串口调试工具,就一点问题都没有

图片说明:

PC机用Window API与S7-224XP Modbus通讯 停止位的问题    PC机用Window API与S7-224XP Modbus通讯 停止位的问题    PC机用Window API与S7-224XP Modbus通讯 停止位的问题   

最佳答案

是容错设计让串口调试软件能够正常工作的。
停止位1或2都能正确读出。
我是用串口调试工具进行调试的,劝你不要浪费精力纠结这个问题了。

提问者对于答案的评价:
问题原因找到了, 因为Windows API设置停止位时, 1bit的参数是0; 1.5bit是1, 2bit是2, 从网上找的代码设置时,直接设置成1, 就相当于是用的1.5bit的停止位, 所以读串口时总是读不对。 改设成0, 也就是1bit的停止位,读写都没问题了。 经过实验,证明读PLC发出的信息时,停止位必须设置为1bit才能读出来,但是写串口(返回信息给PLC)时,设置为1bit或2bit在PLC上都可以正确地读出.
不纠结无进步。
不过还是谢谢你。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年11月1日 上午12:19
下一篇 2017年11月1日 上午12:20

相关推荐

  • S7-200PLC高速计数器的应用

    我用S7-200PLC连接增量型编码器来模拟现场PLC中的程序(现场PLC中的程序看不懂),但是在模拟的时候感觉计数器根本没有工作,旋转编码器能检测到PLC的I点在闪烁,但是编码器…

    SIMATIC S7-200 2021年7月5日
  • 分度盘的控制

    1,、手动功能通过触摸屏组态画面的手动功能,输入旋转的角度,再按正转或反转实现手动旋转给定的角度功能。、自动功能通过触摸屏组态画面的自动画面,输入分度的个数N,点启动按钮,要求pl…

    SIMATIC S7-200 2017年6月24日
  • 自由口通讯改停止位

    我用自由口通讯 我的仪表协议是停止位要2  SMB130口 我怎么没有看到改停止位的啊? 最佳答案 看一下这个技术支持的帖子,或许你的问题迎…

    SIMATIC S7-200 2020年10月31日
  • 关于S7-200定时器的问题?

    我想利用SM0.4这个分钟脉冲来实现分钟定时,该如何使用,好象200的里面定时器最多可以计数到3276.7秒,还有其他的方法实现吗? 最佳答案 对sm0.4的上升沿进行计数,将计数…

    SIMATIC S7-200 2021年7月5日
  • 关于ET200问题123

    如图,是博图可以插入的ET200设备,去百度没找到完整的介绍资料。谁帮忙解释一下这些设备,以及后面可带的模块型号,或者发一份资料链接 问题补充:这个问题太大了。就帮我看看驱动接口是…

    2021年7月5日
  • 所有的表格读取和表格写入指令必须用边缘触发器指令激活。

    所有的表格读取和表格写入指令必须用边缘触发器指令激活。 这里的边缘触发器指令是什么意思?或者说哪样的指令是属于边缘触发器指令? 表格读取和表格写入指令&nbsp…

    SIMATIC S7-200 2021年7月5日
  • PC ACCESS通讯需要安装哪些软件

    CP243-1+以太网卡+PC ACCESS,通过OPC通道连接;除了安装PC ACCESS和WINCC外,还需要安装step7和NET软件吗 最佳答案 不需要…

    SIMATIC S7-200 2020年11月1日
  • s7-200位置控制向导如何使用??

    本人想使用西门子plc s7-200控制松下伺服电机。因刚刚才接触西门子plc,手头上没有什么资料。请问位置控制向导如何使用?那位有详细资料发我一份!在此谢了!!!邮箱:…

    SIMATIC S7-200 2020年10月31日
  • 在PLCS7-200中,怎样实现时控开关的功能

    现在有一个项目,对方要求每天晚上九点三十分开爆气阀,第二天上午关爆气阀,在S7-200 CPU226 CN中怎样编程实现。我采用读取时钟,加比较指令,试了试,行…

    SIMATIC S7-200 2021年7月5日
  • 被简单程序要求难_倒了,求教程序,简单方法

    一、控制要求:1、按下启动按钮,小车启动运行(1、若小车停在左限位,则启动后向右运动;2、若小车停在右限位,则启动后向左运动;3、若小车停在左限位和右限位之间,则启动后向右运动;)…

    2017年5月31日