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:19

相关推荐

  • CPU226CN DC/DC/DC (24I/16O)电池型号

    我们需要一个CPU226CN DC/DC/DC (24I/16O)电池,,但是不知道具体型号 问题补充:延长断电保持时间的,时间要在一个月以上的 最佳答案 电池…

    SIMATIC S7-200 2017年6月27日
  • 博图V15 仿真时提示含有无法仿真的块

    博图V15 仿真时提示含有无法仿真的块 最佳答案 有些功能是不支持仿真的/http://www.ad.siemens.com.cn/productportal/prods…

    SIMATIC S7-200 2021年7月5日
  • 有关(6ES7 972-0CA23-0XA0)MPI电缆

    我现在有一台CPU224,一台MP277.我想买一根6ES7 972-0CA23-0XA0,PC机用这根MPI线能不能和这两种机型都能通讯. 最佳答案 6ES7972-0…

    SIMATIC S7-200 2021年7月5日
  • 如何找到指令帮助

    再看别人的程序时,如何找到指令帮助,为了学习,当看不懂第二步时,如何向下 最佳答案 按F1 ,选中指令然后按F1, 看不懂指令可以看帮助,看不懂为什么要用这个指…

    SIMATIC S7-200 2021年7月5日
  • 笔记本和S7200通信

    请问笔记本和S7200通信用串口行不行 最佳答案 支持RS232的串口可以的 提问者对于答案的评价:ok

    SIMATIC S7-200 2021年7月5日
  • s7-200 模拟量计算

    EM235模拟量计算中IN1与IN2均为整形,若IN1为浮点型,程序应该怎样写。 最佳答案 引用:怎么把实数VD转化为整数VW?应用下述指令:1、将四舍五入存入指定的输出变量中;四…

    SIMATIC S7-200 2020年10月31日
  • 在PID中输入是增长.输出是负增长.怎样实现

    输入0-10MP压力输出是50-0的频率 最佳答案 1、系统提供的PID功能块(例如FB41)中有个重要的输入(INPUT)参数“GAIN”,这是设置PID增益(即比例P)功能的参…

    SIMATIC S7-200 2021年7月4日
  • s7200的modbus速度

    s7200与6个modbus从站仪表通讯,用s7200的modbus库,但有一个情况,就是经常性的,每个仪表要反应4秒,表上的面板显示值才过来,各位大虾,有没什么好办法,提高下速度…

    SIMATIC S7-200 2021年7月4日
  • 数据寻址

    在寻址中,数据得长度是按位,字节,字和双字设置的.VW存储区域包含2个VB存储区域,比如VW100包含VB100和VB101.如果给VB100传送数值12,VB101传送34,那么…

    SIMATIC S7-200 2021年7月5日
  • EM253参数设置

    在STEP 7-MicroWIN“工具里面“设置“EM253控制面板”时总是出现错误提示“从V存储区读取模块配置错误。检查此模块的V存储指针”始终进不去设置窗口。此问题不…

    SIMATIC S7-200 2021年7月5日