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日
下一篇 2017年11月1日

相关推荐

  • 以太网模块通讯问题

    trcv -c  和 tsend-c指令组态中的本地端口和伙伴端口填的数字是多少,怎么找 最佳答案 本地端口设置范围(2000-49151)…

    2021年7月5日
  • SMART200之间的自由口通讯

    哪位大神知到smart200之间的自由口通讯具体的主从站程序怎么设?我会smart200与串口之间的自由口发送和接收通讯,但是不会smart200之间的自由口通讯通讯,那我大神会帮…

    SIMATIC S7-200 2021年7月5日
  • smart700ie与s7-200之间怎么通信

    smart700ie与s7-200之间用RS485通信线怎么通信 最佳答案 使用RS485/422的串口连接CPU200,硬件连接见附图;软件组态选择PPI协议即可。 图片说明: …

    2017年11月1日
  • MP277 与S7-200的连接线怎么定义的?

    MP277 与S7-200的连接线怎么定义的?自己能做吗? 最佳答案 MPI 通讯 使用   MP277 &n…

    SIMATIC S7-200 2021年7月4日
  • 适用于S7-200的触摸屏和软件有哪些?

    适用于S7-200的触摸屏和软件有哪些? 问题补充:谢谢大家的回答,组态软件用WinCC flexible行吗?小弟正在学习中,希望大家不要见笑。 最佳答案 1、西门子的…

    SIMATIC S7-200 2019年6月11日
  • 检测霍尔开关的脉冲

    200的PLC怎么检测霍尔开关的脉冲数?是用一般的计数器计数呢,还是用高速计数器?该怎么写程序呢? 最佳答案 视开关频率定啊。很低当然用普通计数器,编程、接线很灵活。 要…

    SIMATIC S7-200 2021年7月5日
  • 请教编程问题

    s7-200 PC/PPI接口怎样改用USB/PPI接口(进口CPU) 最佳答案 点击编程软件左侧的“设置PG/PC接口”,在弹出的对话框中选“PC/PPI C…

    SIMATIC S7-200 2021年7月5日
  • 216CPU自由口通讯

    我是一套216CPU的系统,现在需要做一个自由口通讯,用的是串口测试软件读的数据,我第一次做自由口,按照帮助例程做的,可是就是读不到数据。小弟就费解了,而且我只用发送不需要接收。清…

    SIMATIC S7-200 2020年11月1日
  • SM187.3里的0或1分别指什么?

    自由口通讯接收控制字中SMB187里的C/M 0等于内部字符定时器和1等于信息定时器分别代表什么意思,内部字符指什么,信息又是指什么??信息开始 = …

    SIMATIC S7-200 2017年11月4日
  • 西门子各种产品的实物图,用于PPT演示

    RT,要原图,不配任何文字的。谢谢。有的话发我邮箱,wwhxbx@126.com。 最佳答案 下面什么样本都有,你自己去下载就OK了。http://www.ad.siemens.c…

    SIMATIC S7-200 2020年11月1日