PLC通信是个大学问,我们从基础开始吧!

当我们知道了工业上串口通信(RS232\RS422\RS485)通信的甲乙双方如何在物理层面上建立起通信的链路。是不是有了这些条件通信的甲乙双方就可以进行沟通了呢?

其实还是不够的。这就好比两个人打电话,电话线路是通畅的,但是两个人说的不是同一种语言,一个人说中文,一个人说德文,说了半天一句没听懂,“你这是弄啥勒”?啪,电话挂掉了。


两个讲着不同语言的人是无法进行交流的,要想交流,就必须对语言进行统一,比如都用英文,这样两个人就能够进行沟通,愉快的玩耍了。


工业上的通信和日常说话其实是一样一样的,当我们把物理上的线路都正确的连接后,还需要对相互的之间数据的发送接收进行相应的规定,这种规定称为通信协议。


通信协议对数据报文进行了明确的定义,比如:帧的起始信号,结束信号,数据的长度,校验码等等。工业上的通信协议非常多,比如:Modbus总线协议;ProfiBus总线协议,ProfiNet总线协议,S7 通信协议;Interbus总线协议;汽车上用的最广泛的CAN协议;及很多基于CAN协议的如DeviceNet,CanOpen等等。有了这些协议,通信的甲乙双方(总线协议可以有很多通信小伙伴)就可以建立起连接,愉快的交换数据了。


这里我们要着重说的是串口通信的协议,称之为ASCII协议。该协议有这样一些参数:波特率,起始位,数据位,停止位,校验位。

1)波特率(baud rate):是指每秒钟所传输的字符(也称为码元)的个数。注意这里的字符不是字节,不一定是8位。波特率的单位是 “Baud”。


 很多小伙伴容易把“波特率”和“比特率”进行混淆。比特是英文的"bit"的翻译,表示二进制的“位”。比特率是指每秒钟所传输的位的个数,单位为bps(bit per second)。假设一秒钟传输2个字节(一个字节有八个位),比特率就是2*8=16bps。


再回到波特率,假如波特率中的字符(码元)是这样定义的:1个起始位,1个停止位,8个数据位 。那么码元的总位数(bit)=1+1+8=10。在波特率等于9600的情况下,传输的比特率=9600*10=96000 bps。

2)起始位:串行通信在空闲的时候,总线上的电平为高电平(逻辑1),开始传输数据时,要先把总线上的电平拉低一个时间单位(逻辑0),称为1个起始位。时间单位是与波特率相关的,波特率越高,时间单位的宽度越窄。起始位不需要设置,默认为1,是包含在数据位里的。

3)数据位:表示传输的数据的位数,范围是5-8,通常是8位;注意,8位数据由于包含了一个起始位,其有效的数据位数为7位。

4)校验位:校验是数据传送时采用的一种校正数据错误的一种方式,通常分为奇校验和偶校验,串行通信中可以有如下几种校验位的选择:

4.1)奇校验(Odd):数据在传输过程中,为1的位(bit)的总数应为奇数;若不是奇数,则校验位=1;若是,则校验位=0;

4.2)偶校验(Even):数据在传输过程中,为1的位(bit)的总数应为偶数;若不是偶数,则校验位=1;若是,则校验位=0;

4.3)空位校验(Space):校验位=0

4.4)标记校验(Mark):校验位=1

4.5)无校验(no parity):不使用校验位

5)停止位:当一个字符的数据传输完成后,要把总线的电平拉高。停止位也是以时间长度来衡量的,通常可以选择“1”,“1.5”,“2”。以1.5为例,它表示停止位的高电平要保持1.5个时间单位的长度(取决于波特率)。停止位之后总线就转入空闲状态等待下次的起始信号。


下图就是方正智芯的串口调试软件“Como”的串口配置界面。


这里注意的是“串口名称”这一项,计算机上可能有很多串口,COM1,COM2等,在这里选择你要使用的是哪个串口。


细心的小伙伴可能会发现,在上图的界面中,有个"RTS/CTR使能"的选项,这是什么东东呢?这就要说到串行通信的“流控制”(handshaking)了。


这里所说的“流”,是指数据流。数据在两个串口之间进行传输时,有时候会出现数据丢失的情况。因为虽然我们配置好了波特率,数据位等相关的信息,但是两个串口各自的数据处理速度很多时候是不一样的。比如台式机与单片机的通信,当单片机来不及处理台式机发来的数据时,就会造成数据缓存区满的情况。如果此时台式机继续发送数据,单片机就无法接收这些数据,从而造成数据丢失。


为了解决串行通信中甲乙双方数据处理速度不同造成的数据丢失的情况,聪明的工程师们提出了“流控制”的概念。流控制有两种:一种是硬件流控制,一种是软件流控制。

1)硬件流控制。

所谓硬件流控制,是指利用硬件线路的电气信号进行发送和接收的控制,硬件流控制必须用电缆将相应的控制引脚进行连接。例如当使用RTS\CTS这一对硬件流控制,首先要将通信甲乙双方的RTS和CTS进行连接。

下图是Datalog 扫码枪硬件流控制(RTS\CTS)的示意图:

当扫码枪要发送数据时,先将RTS的电平拉高,然后检测CTS的电平,如果CTS为高电平,则启动数据的发送。如果CTS为低电平,则暂停数据的发送。当数据发送完毕时,将RTS的电平拉低。

硬件流控制还可以使用DTR和DSR这一对连线的信号,和RTS\CTS类似,不再赘述。

2)软件流控制


硬件流控制由于需要相应的电缆接线,会增加项目的成本。在某些对控制要求不是很严格的场合,可以使用软件进行流控制。软件流控制一般通过XOFF和XON来实现。还以Datalog的扫码枪为例,如下图:


当上位机或PLC(Host)的输入缓冲区内的数据超过设定的上限值时(比如缓冲区大小的75%),上位机发送XOFF字符(13 Hex,表示16进制的13)。扫码枪收到XOFF字符即停止数据的发送。当上位机或PLC(Host)的输入缓冲区的数据恢复到正常范围时,上位机发送XON字符(11 Hex,表示16进制的11),扫码枪收到XON字符时,就继续发送数据。


软件流控制可以减少布线的成本,但是在设计程序时必须谨慎使用0x13(13 Hex)和0x11(11 Hex)这两个字符作为数据包的内容,否则很有可能引起软件的误操作。


文章来源:电气系  (全网同名)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,026评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,655评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,726评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,204评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,558评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,731评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,944评论 2 314
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,698评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,438评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,633评论 2 247
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,125评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,444评论 3 255
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,137评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,103评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,888评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,772评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,669评论 2 271

推荐阅读更多精彩内容