中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

西门子SIEMENS

在线课堂 菲力尔 台达 英威腾 泓格论坛 西门子 我和LOGO!有个约会 FLIR红外热像论坛 【有奖活动】英威腾 “Ni美国国家仪器 “PLC发展趋势大讨论”活动圆满结束 施耐德 cc-link图文征集活动 西门子SMART LINE V3
工控论坛首页 西门子SIEMENS → 浏览主题: 【话题】马乐:玩转485通讯系列【连载】(20140918)
发表新帖 回复该主题
回帖:253个,阅读:42894 [上一页] [1] [2] [3] [4] [5] [6] [7] [8] [9] ... [26] [下一页]
* 帖子主题:

【话题】马乐:玩转485通讯系列【连载】(20140918)

50
马乐
文章数:17
年度积分:50
历史总积分:50
注册时间:2014/9/17
发站内信
发表于:2014/9/17 10:24:11
#0楼
      说到通讯大家都觉得很难,觉得学起来没有头绪,其实我刚看到通讯的时候也是这样的感觉,资料找了一大堆都是理论,看来看去总感觉无从下手,最后终于搞懂后才发现,其实学不懂的主要原因并不应该用难来形容,而是这个东西它太复杂了,想要一次全部看懂消化是不太可能的事情,只有分步骤将这个复杂的知识一点点的进行拆分,循序渐进的进行理解,才能最终将这个复杂的知识掌握。

       为了方便大家浏览,本文系列的所有文章我都会更新到本帖中,大家可以持续关注下方的精彩回复中的更新。



【玩转485】1.基础扫盲【连载1】

个人微信号:mayue_66

1.什么是通讯
       要搞清楚RS485通讯我们要先搞明白什么是通讯,其实通讯就是两个设备之间0 1代码的传递,0就是低电平1就是高电平。假如A设备向B设备传递数据,那么首先A设备和B设备之间必须通过电缆连接,如果A设备要向B设备发送1O1O1O这样一串代码那么A设备就要在他的通讯端口产生图 1-1所示的高低电平的组合,这样通过电缆这个介质B设备的通讯端口就会接收到这样的高低电平的组合,同时就会将这个高低电平的组合翻译成1O1O1O这样的二进制代码,这样就完成了A设备向B设备数据的传递,B设备向A设备数据传递是同样的道理。

附件 1.jpg
图 1-1

       讲到这里还要普及全双工半双工、通讯速率和主从通讯,这三个概念。

       全双工的意思就是通讯端口在发送数据的同时可以接收数据,而半双工指的是同一时刻通讯端口要么只能发送数据,要么只能接收数据两个工作不能同时进行。

       通讯速率指的就是1S内通讯端口发送01代码(或者说是高低电平)的数量。打个比方如果我们说通讯速率是9.6kbps那就表示通讯端口每秒发送9600个bit的数据也就是每秒可以产生9600个高低电平(注意这里是高低电平总共加起来9600个)。

       主从通讯,指的是在一个通讯网络中一个站点是主站,其他站点作为从站,主站和从站之间可以直接进行数据的传递,但是从站与从站之间不能直接进行数据的传递,如果从站之间想要交换数据也必须要通过主站如图 1-2所示。

附件 2.jpg
图 1-2

2.485通讯

       明白了通讯的基本概念下面大家再看485通讯就会感觉相对容易了,下面我们从通讯介质、通讯方式、通讯类型、物理层四个方面来向大家介绍。

通讯介质:屏蔽双绞线,也就是我们通常用的带有屏蔽层的两心电缆如图 2-1所示。

附件 111.jpg
图 2-1
通讯方式:半双工
通讯类型:主从通讯
物理层:  9针接口,这里需要注意的是通常情况下485的9针接口我们只需要将两芯电缆接到3号脚和8号脚上,3是信号“﹢”,8是信号“-”。 图 2 2是母头示意图,图 2 3是公头示意图。

附件 插头母.jpg
图 2-2

附件 插头公.jpg
图 2-3

3.通讯协议

       最后再帮大家把通讯协议这个概念捋一捋,我觉得很多朋友都是把通讯协议和通讯的物理层搞不清楚,一问你这个通讯用的是什么协议,经常有人回答“我这个是485协议、我这个是232协议”。这就是典型的把通讯协议和通讯物理层搞混了,打个比方,就像我们打电话一样,电话是物理层,通话的人之间说的语言就是协议,同一个物理层可以传输不同的协议,就像电话两边的人既可以说中文也可以说英语。中文是一种协议,英文是另一种协议。485就像是电话是物理层,在这个物理层可以传输modbus协议,也可以传送Profibus协议,这个比喻应该可以比较清楚的反映出通讯协议和物理层的关系。

       本文我们就先向大家介绍一下通讯的基本概念,以及RS485通讯的物理层,大家建立一个基本的概念就好,我认为通讯想要搞懂,最重要的还是要把协议这个东西理解了,后续我将会更新系列文章帮助大家循序渐进的理解并掌握RS485通讯。

附件:【玩转485】1.基础扫盲.pdf
[本地下载]

个人微信号mayue_66
附件 马乐.gif
[此贴子已经被思南于2014/10/8 14:15:26编辑过]
41990
kdrjl 版主
文章数:21459
年度积分:1057
历史总积分:41990
注册时间:2004/2/17
发站内信
2016论坛优秀版主
2015论坛优秀版主
2014论坛优秀版主
我秀我做2014
2013论坛优秀版主
秀秀我的办公桌
晒晒工控小礼品
2012论坛优秀版主
2011论坛贡献奖
2010年论坛优秀版主
发表于:2014/9/17 11:02:37
#1楼
好好好...,【玩儿转485】的ABC扫盲,通俗易懂。由表及里,由浅入深的讲,这个一定要点赞。
我是你的朋友
15045
dlr
文章数:3592
年度积分:999
历史总积分:15045
注册时间:2007/1/3
发站内信
2017春节活动(三)
2016论坛贡献奖
2016国庆活动(三)
2015论坛贡献奖
2015春节活动
2014论坛贡献奖
2013辞旧迎新
2013论坛贡献奖
2010年度论坛贡献奖
2010年四月影像
09工控人生征文
08年最佳博客奖
发表于:2014/9/17 11:20:30
#2楼
楼主考虑的很周到,除了发文还附了个PDF文件供网友下载保存。
18082
ZHTOK
文章数:11828
年度积分:50
历史总积分:18082
注册时间:2004/3/11
发站内信
2014相约国庆
发表于:2014/9/17 11:57:54
#3楼
    术语:里层绝缘,外层护套
18082
ZHTOK
文章数:11828
年度积分:50
历史总积分:18082
注册时间:2004/3/11
发站内信
2014相约国庆
发表于:2014/9/17 11:59:56
#4楼
    扫盲贴,好.系统地看看.
8990
qjj740210
文章数:3354
年度积分:660
历史总积分:8990
注册时间:2005/9/24
发站内信
2017春节活动(二)
2016国庆活动(二)
西门子触摸屏(一)
三菱电机活动(二)
西门子logo体验(三)
西门子PLC体验(二)
2013辞旧迎新
发表于:2014/9/17 12:07:39
#5楼
好东西啊!一朝领会胜读10年书。
苦逼的奋斗者
15762
hwl123
文章数:5726
年度积分:578
历史总积分:15762
注册时间:2008/6/29
发站内信
2016国庆活动(三)
2013辞旧迎新
晒工控工具书
2011国庆活动
发表于:2014/9/17 13:34:34
#6楼
对通讯不懂正好学学。
56
whjwhj57
文章数:53
年度积分:56
历史总积分:56
注册时间:2014/9/14
发站内信
发表于:2014/9/17 14:32:02
#7楼
好帖!期待更新。
此帖发自手机工控论坛
50
马乐
文章数:17
年度积分:50
历史总积分:50
注册时间:2014/9/17
发站内信
发表于:2014/9/17 15:06:54
#8楼
【玩转485】2.数据的发送【连载2】
  说到通讯大家都觉得很难,觉得学起来没有头绪,其实我刚看到通讯的时候也是这样的感觉,资料找了一大堆都是理论,看来看去总感觉无从下手,最后终于搞懂后才发现,其实学不懂的主要原因并不应该用难来形容,而是这个东西它太复杂了,想要一次全部看懂消化是不太可能的事情,只有分步骤将这个复杂的知识一点点的进行拆分,循序渐进的进行理解,才能最终将这个复杂的知识掌握。

      上一篇文章我首先给大家普及了一下通讯的基本原理(到底什么是通讯),什么是RS485,首先帮助大家先对RS485通讯建立一个基本的概念。本文我们就从通讯中最简单的步骤,数据的发送(PLC向电脑发数据)向大家讲起。

  1      实验工具
  第一要告诉大家我们这篇文章中要用到的工具。

  1.      S7-200CPU 1个(型号无所谓,最好有两个通讯口)
附件 800.jpg
图1-1

  2.      串口调试软件
附件 801.jpg
图1-2

  3.      Usb转485转换接头1个(RS232转RS485接头也可)
附件 802.jpg
图1-3

  4.      9针接头公头1个
附件 803.jpg
图1-4

  5.      两芯电缆
附件 804.jpg
图1-5
  2      实验流程
  实验目的:从PLC向电脑发送一个字节的数据。
  实验操作:用S7-200PLC向电脑发送一个字节的数据,通过串口调试软件接收,由于现在的电脑都没有RS485通讯接口,因此我们要使用Usb转485转换接头才能保障电脑可以接收到来自PLC的数据,另外接线要注意9针头的3脚接Usb转485接头的信号“+”,8脚接Usb转485接头的信号“-”

  3   自由口模式
      说到程序的编写首先大家必须了解S7-200的自由口模式,由于S7-200的默认通讯方式是PPI通讯,因此不能自由收发数据,如果想自由收发数据,就必须先将S7-200的通讯接口设置为自由口模式,控制S7-200自由口的是特殊位寄存器SMB30和SMB130。其中SMB30是控制CPU通讯口0的,SMB130是控制通讯口1的,当然如果只有一个通讯端口就只能使用SMB30这个特殊位寄存器了。下面我们一起来看看这8个位,分别表示什么含义如图 3-1所示。
附件 805.jpg
图 3-1

  1)        0 、1位: 协议选择
  mm:
  00 = 点到点接口协议(PPI/从站模式)
  01 = 自由口协议
  10 = PPI/主站模式
  11 = 保留(缺省是PPI/从站模式)

  2)        2、 3 、4位:自由口波特率设置
  bbb:
  000 = 38400bps
  001 = 19200bps
  010 = 9600bps
  011 = 4800bps
  100 = 2400bps
  101 = 1200bps
  110 = 115200bps
  111 = 57600bps


  3)        5位:每个字符的数据位
  d:
  0 = 8位/字符
  1 = 7位/字符

  4)        6 、7位:效验选择
  pp:
  00 = 不效验
  01 = 偶效验
  10 = 不效验
  11 = 奇效验

      这里还要和大家补充一个概念,在通讯的过程中每次发送与接收的最小单位是字符而不是位,1个字符通常包括1个起始位表示字符的开始,1个停止位表示字符的结束,一个奇偶效验位用于验证字符错对,和8个或者7个数据位用于传递信息。这里奇偶效验位可有可无,数据位通常情况下是8个位也就是1个字节,因此如果一个字符包含奇偶效验位通常是11个位,不包含奇偶效验位则是10个位。

      通过上面对自由口模式的介绍,如果我们在S7-200CPU的通讯端口0使用自由口模式,通讯速率为9600bps传输的字符不要奇偶效验位,那么我们就必须将SMB30中的数据配置成00001001如图 3-2所示换算成16进制就是16#9
附件 806.jpg
图 3-2

  4      程序编写
  在开始编写程序之前,我们首先要掌握S7-200发送指令的使用。
附件 807.jpg
图4-1
  XMT发送指令有两个管脚,TBL和PORT。

  PORT:通讯端口编号,如果用0端口则写0,如果用1端口则写1.

  TBL:定义发送缓冲区的起始地址和缓冲区的大小,如果TBL中写VB100,VB100中存放1,则发送缓冲区是VB101,发送数据时将VB101中的数据发送出去。如果VB100中存放2,则发送缓冲区为VB101和VB102,发送数据时将VB101、VB102的数据发送出去。

  下面我们来看程序的具体写法。
附件 808.jpg
图 4-2

      图 4-2所示的程序就是一个最简单的发送程序,首先用SMB30将通讯口0定义为自由口,通讯速率9600bps,然后定义VB101为发送缓冲区(因为VB100中存放的是1),通过SM0.5将VB101中的16进制的CC以1秒钟为单位发送给电脑。最终我们电脑将会以1秒为单位接收到PLC发送的字符CC如图 4-3所示。
附件 809.jpg
图 4-3

-------------------------------
作者:马乐
版权为技成所有,未经同意,盗取必究!


下载:程序
附件:程序.rar
[本地下载]

下载:【玩转485】2.数据的发送.pdf
附件:【玩转485】2.数据的发送.pdf
[本地下载]
[此贴子已经被思南于2014/9/19 11:08:15编辑过]
2330
九翱九天
文章数:339
年度积分:50
历史总积分:2330
注册时间:2005/6/20
发站内信
发表于:2014/9/17 16:07:35
#9楼
讲的很通俗易懂,有图有解说,非常容易理解,就是感觉讲的太少了点,如果能再讲多点就更好了表情
工控学堂推荐视频:

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 中华工控网 Copyright©2018 Gkong.com, All Rights Reserved

156