字符格式对通讯有影响吗?

用S7200自由口modbusRtu通讯,s7200PLC主站、智能模块从站。
 modbusRtu协议数据格式 1位起始位+8位数据位+1位校验位(如无奇偶校验该位位停止位)+1位停止位,即11位格式。西门子200PLC数据格式为 1位起始位+8位数据位+1位校验位或无+1位停止位。
 如果s7200采用无奇偶校验,那么到底是11位还是10位格式。数据格式不一样,对通讯是否有影响。
 请大家帮我解答一下,谢谢。

问题补充:
LaoHuai - 助理工程师  第8级:你好!
 请教一下s7200字符数据格式的问题。因为Modbus Rtu标准协议中当采用无校验方式时,其字符格式中的校验位自动变为停止位。即“1位起始位+8位数据位+1位奇偶校验位+1位停止位”变化为“1位起始位+8位数据位+1位停止位+1位停止位”。我不清楚s7200中的字符数据格式是否也有这种转换。那么当s7200采用无校验时,其数据格式是“1位起始位+8位数据位+1位停止位+1位停止位”还是“1位起始位+8位数据位+1位停止位”?
 那么当s7200采用无校验时,如果其字符格式为:“1位起始位+8位数据位+1位停止位”是否意味着下面的内容。
 1.当S7200 PLC做主站使用自由口Modbus Rtu标准协议通讯时,如果采用11位数据格式,那么必须要求第三方设备改变为只有1位的数据格式么?
 2.当如果S7200 PLC做从站时,那不是就没有办法与有两位停止位的标准Modbus Rtu标准协议通讯?
 3.主从双方都同时使用奇校验或者偶校验方式,使得数据位都成为11位?
 请答复一下,谢谢。
 

最佳答案

关于字符中断的例子已经发给你了。

 
 1 通讯双方的字符格式必须一致!相同的起始位,相同的数据位,相同的停止位,这是必须的。
  2 200PLC通讯字符的停止位是1位的,这是硬件决定的,没法改变
  但是在论坛里,他们好像讨论过怎么和2位停止位的设备通讯的问题,你可以找找。
  3 在通信开始之前,收发双方要把所采用的信息格式和数据传输速率作统一的规定。通信时,发送方把要发送的代码数据拼装成以起始位开始,停止为结束,代码数据的低位在前,高位在后的串行字符信息格式进行发送。在每个串行字符之间允许有不定长的空闲位,一直到要发送的代码数据结束。
  起始位为“0”,作为联络信号,通知接受方开始接受数据,停止位“1”和空闲位“1”告诉接受方一个串行字符传送完毕。通信开始后,接受方不断的检测传输线,查看是否有起始位的到来。当收到一系列的“1”(空闲位或停止位)之后,检测到一个“0”时,说明起始位开始,开始接受所规定的数据位和奇偶校验位及停止位。经过校验处理后,把接受到的代码数据位部分拼装成一个代码数据。一个串行字符接受完成后,接受方又继续检测传输线,监视“0”的到来和开始接受下一个串行字符。
  异步串行通信是按字符传输的,发送方每发送一个字符,就用起始位通知对方,以此来重新核对收发双方的同步。

  4 在用异步通信方式进行通信时,发送端需要用时钟来决定每一位对应的时间长度,接受端需要用一个时钟来测定每一位的时间长度,前一个时钟叫发送时钟,后一个叫接受时钟,这两个时钟的频率可以是位传输率的16倍,32倍,64倍。,这个倍数称为波特率因子,而位传输率称为波特率。波特率的定义为每秒传送二进制数码的位数。单位为bps,即位/秒。波特率越高,数据传输越快,但和字符的实际传输速率不同。字符的传输速率是指每秒所传输的字符桢的桢数,和字符桢格式有关。如波特率为1200bps的通信系统,若字符桢为11位(起始位1,数据位8,奇偶校验1,停止1),则字符的实际传输速率为1200/11=109.09桢/秒。每位的传输时间定义为波特率的倒数,如波特率为9600bps的通信系统,每位的传输时间为1/9600=0.104ms。

  5 若波特率因子为16,当通信时,接受端在检测到电平由高到底变化以后,便开始记数(记数时钟为接受时钟),当记到第8个时钟以后,就对输入信号进行采样,如仍为低电平,则确认为起始信号,而不是干扰信号。此后每16个时钟脉冲对输入进行一次采样,直到各个信息位和停止位输入以后。
    
 

提问者对于答案的评价:
看来还要补一下计算机硬件基础。

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

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

相关推荐

  • s7-200和AB micro可以通讯吗?

    s7-200(CPU224)和AB (microLogix 1200)可以通讯吗?有实例吗?谢谢…… 最佳答案 两个不同品牌的PLC进行通讯是比较麻烦的一件事情…

    SIMATIC S7-200 2021年7月5日
  • PPI线缆制作

    我现在需要制作两台S7-200之间的PPI通讯线缆(公转公的),在网上找了很多都是编程线缆制作,所以想求教一下各位大神? 最佳答案 两台间的网络读写用DB9针*3脚8脚分别直联即可…

    SIMATIC S7-200 2017年11月17日
  • 200 PLC的MODBUS通讯,遇到困难了!

    S7 224的PLC做modbus主站,去读写下面的一个做从站的第三方仪表。我通过串口调试工具按照仪表的标准报文格式要求,发送:“03[站地址] 05[写命令]…

    SIMATIC S7-200 2020年11月1日
  • PROFIBUS网络中S7-200编程

    带CP5611通讯卡的个人机为上位机,通过编程实现S7-200(CPU224、EM277,带DP模块)控制MM440对普通三相交流电机的远程调速(要求连续调速),二者间使用USS协…

    SIMATIC S7-200 2021年7月5日
  • ACSII通信

    我想用200的口与一台智能仪表通信,其协议是ACSII。不知道有什么方案可行。 问题补充:用自由口通信,不知道如何传输。地址和其对应的数值都要传输吗?还是只读地址值,数据会自动传输…

    SIMATIC S7-200 2020年10月31日
  • smart200 MODBUS读取ABB510模拟量AI2数值

    SMART200,MODBUS读取ABB510变频器模拟量AI2数值(说明书标注AI2数值读取过来以百分比表示)我直接30002读取,或映射到寄存器读取,读出来都是400多,这怎么…

    SIMATIC S7-200 2021年7月5日
  • 如何根据订货号来识别PLC?

    如何看到一个200PLC的订货号就能识别出PLC的产地,生产日期,版本呢?请大家指教,谢谢 最佳答案 以6ES7 221-0BA23-0XA0为例:6ES—-自动化系…

    SIMATIC S7-200 2020年11月1日
  • modbus通信 05功能码 出错,求解!

    使用S7-200作为主站通过modbus协议库和智能仪表通信,DataPtr中的值赋值为16#FF00时,使用modbus调试软件监测到发出的数据为03 05 …

    SIMATIC S7-200 2021年7月5日
  • 问一下吧,知道得 说下吧

    用西门子plc200和组态王做个水位控制系统,plc控制能够实时显示水位高度,需要什么了?谢谢。 问题补充:水塔水位控制模拟图。当水位低于水池低水位界,阀门Y打开进水,高于下限时,…

    SIMATIC S7-200 2019年6月10日
  • 多台S7200与1台WINCC上位机如何通信?

    现场有九台同样配置及功能的S7200小系统(I/O地址都是一样的),现想通过一个上位机WINCC来对这九个小系统进行监控操作,注意,是独立监控操作。请问如何才能实现?有没有比较简单…

    SIMATIC S7-200 2017年11月19日

发表回复

登录后才能评论