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

用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

相关推荐

  • 下载失败

    S7200,我调用以前的程序,下载失败,提示“组态指定参数错误”,请问大家什么原因?我目前使用的是4.0SP6的软件,调用的可能是SP3的 最佳答案 查看一下以前的程序的硬件组态的…

    SIMATIC S7-200 2021年7月4日
  • S7-200位置控制向导问题?

    现在做一个伺服定位控制,目标位置和目标速度都已经设定好了,但是调试时发现伺服行走位置不对,应如何修改参数?有没有别的控制方式可以控制伺服电机?只用本身的Q0.0和Q0.1 问题补充…

    SIMATIC S7-200 2021年7月4日
  • wincc 与s7-200通讯

    我现在尝试了几种结局方法。一:使用 em277通过wincc自带驱动cp5412驱动通讯,硬件cp5611,不过有人说通讯只能8个连接,有人说可以50个链接,因为暂时没有…

    SIMATIC S7-200 2021年7月5日
  • 1500模拟量模块ET200MP

    想利用et200mp加一个4-20ma的模拟量模块,上面写着模拟量输入模块 AI4 x U/I/RTD/TC,是不是电压,电流,,RTD,TC都可以使…

    SIMATIC S7-200 2021年7月5日
  • CPU224的脉冲输出口问题

    伺服电机与负载是直联的,没有减速装置,能否用CPU224的脉冲输出口Q0.0和Q0.1分别控制一个伺服驱动,即用一个CPU224控制两个伺服电机,这两个电机不是同时工作的,可以实现…

    SIMATIC S7-200 2021年7月5日
  • 急求,西门子PLC200与组态王怎么自由口通讯啊?

    我下载了那个初始化程序也还是显示打开设备失败?? 问题补充:就是那个初始化程序直接就可以用吗,不需要设置一些东西吗? 最佳答案 建议楼主进入一下网页参考(里面有个软件包):http…

    SIMATIC S7-200 2020年10月31日
  • MM440的PID调节控制

    现有MM440变频器,EM235模块,一个压力传感器,要求压力低了,泵启动,控制水位,怎么实现PID调节?最好有样例,谢谢! 最佳答案 你提及到的这个压力传感器,要求压力低了,就把…

    SIMATIC S7-200 2017年10月30日
  • 西门子200与力控软件

    我想用力控软件显示西门子200里VD、VW寄存器里的数值,怎样才能实现呢?我试着连接了一下,力控软件数值显示-9999,并不是V寄存器里存的数值,怎么回事呢? 最佳答案 西门子S7…

    SIMATIC S7-200 2017年6月10日
  • PC/PG接口问题没有完全解决?

    按网友提供的方式;关闭所有西门子软件,然后开始菜单->运行(或按快捷键WIN+R),输入"%CommonProgramFiles%\\Siemens\\Automa…

    2021年7月5日
  • S7-200与步进驱动器使用编程问题

    那位高手可以提供一些200 的步进编程 视频或者文档 ,我看了些资料和帮助不太明白生成的PTO 向导不懂怎么用或者发个程序给小弟 …

    SIMATIC S7-200 2021年7月5日

发表回复

登录后才能评论