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

西门子SIEMENS

抖音 德嘉 泓格论坛 FLIR红外热像论坛
工控论坛首页 西门子SIEMENS → 浏览主题: 【话题】马乐:玩转485通讯系列【连载】(20140918)
发表新帖 回复该主题
回帖:277个,阅读:55522 [上一页] [1] [2] [3] [4] [5] [6] [7] [8] [9] ... [28] [下一页]
* 帖子主题:

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

分享到
49161
kdrjl 版主
文章数:24274
年度积分:50
历史总积分:49161
注册时间:2004/2/17
发站内信
2018论坛优秀版主
2017论坛优秀版主
2016论坛优秀版主
2015论坛优秀版主
2014论坛优秀版主
我秀我做2014
2013论坛优秀版主
秀秀我的办公桌
晒晒工控小礼品
2012论坛优秀版主
2011论坛贡献奖
2010年论坛优秀版主
发表于:2014/10/10 14:18:30
#70楼
已下载,辛苦了!谢楼主!
我是你的朋友
1063
lyx1971
文章数:12
年度积分:50
历史总积分:1063
注册时间:2008/4/28
发站内信
发表于:2014/10/11 0:07:43
#71楼
楼主辛苦了!再次感谢!
992
马乐
文章数:17
年度积分:50
历史总积分:992
注册时间:2014/9/17
发站内信
发表于:2014/10/13 15:59:18
#72楼
【玩转485】13.向从站写入数据1【连载13】

个人微信号:mayue_66

掌握了主站读取从站数据的原理与方法,我们再来看看主站是如何向从站写入数据的,和上次一样,这次我还是自己定义一个协议来帮大家理解与掌握整个过程。下面我们首先来看看整个报文的结构。

1.主站发送报文结构

附件 01.jpg

图 1-1
站地址:指的是要读取哪个从站的数据。
功能码:指的是主站要对从站做什么操作,上次我给大家介绍的是用02作为读取从站V区数据,本次我们用03作为给V区写入数值的功能码。
起始地址:写入数据区域的起始地址。
修改字节数:总共要向从站写入多少字节数据。
修改数据1~n:要写入从站的具体数值。

2.从站返回报文结构

附件 02.jpg
图 2-1
站地址:返回数据的从站的地址,让主站知道这是哪个从站返回来的数据。
功能码:就是主站发送给从站的那个功能码,从站再返回给主站。
起始地址:被修改数据区域的起始地址。
修改字节数:从站被修改的字节数量。

附件:【玩转485】13.向从站写入数据1.pdf
[本地下载]

附件 微信二维码.jpg
[此贴子已经被作者于2014/10/13 16:06:05编辑过]
2266
646255119
文章数:102
年度积分:50
历史总积分:2266
注册时间:2010/9/9
发站内信
发表于:2014/10/13 16:47:25
#73楼
好文章,收藏
49161
kdrjl 版主
文章数:24274
年度积分:50
历史总积分:49161
注册时间:2004/2/17
发站内信
2018论坛优秀版主
2017论坛优秀版主
2016论坛优秀版主
2015论坛优秀版主
2014论坛优秀版主
我秀我做2014
2013论坛优秀版主
秀秀我的办公桌
晒晒工控小礼品
2012论坛优秀版主
2011论坛贡献奖
2010年论坛优秀版主
发表于:2014/10/13 17:03:28
#74楼
已下载,谢谢。
我是你的朋友
6544
eyujiedianqi
文章数:2622
年度积分:50
历史总积分:6544
注册时间:2009/6/5
发站内信
发表于:2014/10/13 19:07:49
#75楼
已下载,请继续,谢谢。
992
马乐
文章数:17
年度积分:50
历史总积分:992
注册时间:2014/9/17
发站内信
发表于:2014/10/14 11:01:55
#76楼
【玩转485】14.向从站写入数据2【连载14】

个人微信号:mayue_66

1.报文格式回顾

上一篇文章我向大家介绍了向从站写入数据的方式,并且自定义了一个报文结构,现在我们来回顾一下主站发送报文的格式图 1-1,和从站处理完成后向主站返回数据的报文结构图 1 2。方便我们编写程序。
附件 01.jpg
图 1-1
附件 02.jpg
图 1-2

2.程序编写

图 2-1是主程序

附件 03.jpg
图 2-1
图 2-2接收完成中断
附件 04.jpg
图 2-2
图 2-3~图 2-5子程序Write
附件 05.jpg

图 2-3
附件 06.jpg
图 2-4


附件 07.jpg
图 2-5
图 2-6发送完成中断
附件 08.jpg
图 2-6

3.程序演示

我们用电脑向S7-200PLC发送一组数据修改S7-200PLC中的VB300、VB301、VB302、VB303数据最终使VB300 = 01、VB301 = 02、VB302 = 03、VB303 = 04。
第一步:向调试软件写入要发送的报文图 3-1所示。
附件 09.jpg
图 3-1
第二步:向PLC发送报文并接受PLC返回的报文
附件 10.jpg
图 3-2
第三步:监控S7-200PLC VB300、VB301、VB302、VB303中的数值是否分别是01、02、03、04。

附件 11.jpg

图 3-3

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

附件:【玩转485】14.向从站写入数据2.pdf
[本地下载]
附件 微信二维码.jpg
[此贴子已经被作者于2014/10/14 11:14:58编辑过]
992
马乐
文章数:17
年度积分:50
历史总积分:992
注册时间:2014/9/17
发站内信
发表于:2014/10/15 14:31:30
#77楼
【玩转485】15.crc校验1【连载15】

个人微信号:mayue_66

写了这么多了终于写到了校验可能大部分人都觉得校验是整个通讯过程中最复杂的一个环节。下面我就系统的给大家来介绍一下校验的整个过程。

1.什么是校验

要搞懂校验的整个过程我们先来看看到底什么是校验,可能在我之前的文章中大家也发现了我所写过的程序没有一个和校验有关系,站点与站点之间数据的传递都是直接进行收发,而且也没有出现过任何问题,既然不写校验程序也能正常运行,那校验在我们的整个通讯过程中到底起着什么样的作用呢?

其实这里可能大家忽略了一个问题,我之前文章中所写的程序都是在实验环境中运行的,电脑与PLC之间的距离不超过2米,周围也没有会产生电磁干扰的用电设备,在这样理想的环境中,数据在传输过程中肯定不会发生任何变化,所以写不写校验程序都无所谓,但是在我们的工业现场环境就非常复杂甚至恶劣了,数据在传输过程中很可能由于外部复杂的环境发生变化,甚至是丢失,那么接收到的数据就不是对方发出的数据了,报文的内容就发生了变化,如果变化后的报文没有任何指令含义还好说,一旦变化后的报文的含义发生转变,比如本来主站发出的报文是控制A设备的,但是由于现场的干扰报文变成了控制B设备,那么就会在控制过程中出现误操作,这种情况虽然概率极低但是非常危险。因此我们需要对所有传输的数据进行校验以判断接收到的数据是否和对方发送的数据是一致的。

2.crc校验

下面我就向大家介绍一种工业控制中非常常用的一种校验算法crc校验,首先我用文字向大家描述一下crc校验算法的整个流程。
1) 向一个16位寄存器A装载16个1也就是16#FFFF
2) 取被校验串的第一个字节与16位寄存器A的高位字节进行“异或”运算,运算结果存回寄存器A。
3) 把寄存器A内的数据向右移动一位。
4) 若A寄存器中被移出的数是1,则用1010 0000 0000 0001(16#A001)和寄存器A进行”异或运算”,若寄存器中被移出的数是0则返回步骤3)
5) 重复步骤3)和4),直到移出8位数据为止。
6) 取被校验串的下一个字节
7) 重复步骤3)至6)直至被校验串所有字节均与寄存器A进行“异或”运算,并移位8次。
8) 最终A寄存器中的数值就是crc校验结果。

3.程序编写

此处我先在S7-200PLC中给大家把上面的汉字版校验过程翻译成具体的程序,至于具体在整个通讯的过程中如何使用我们下一篇文章再具体讨论。
图 3-1主程序
附件 01.jpg
图 3-1
图 3-2子程序接口与本地数据定义
附件 02.jpg
图 3-2
附件 03.jpg
图 3-3

4.程序演示

这里我们可以将PLC的计算结果,与专门计算crc的软件算出的数值进行比较。
附件 04.jpg
图 4-1
附件 05.jpg
图 4-2
由图 4-1和图 4-2我们可以看出PLC计算出的结果没有任何错误,当然大家也可以自己去实验更多的数值来对本程序进行验证。

附件:程序.rar
[本地下载]
附件:【玩转485】15.crc效验1.pdf
[本地下载]
附件:数据校验助手.rar
[本地下载]
附件 微信二维码.jpg
[此贴子已经被作者于2014/10/15 14:41:11编辑过]
933
mrbpost
文章数:1
年度积分:50
历史总积分:933
注册时间:2006/8/22
发站内信
发表于:2014/10/15 15:50:43
#78楼
不错,顶!
49161
kdrjl 版主
文章数:24274
年度积分:50
历史总积分:49161
注册时间:2004/2/17
发站内信
2018论坛优秀版主
2017论坛优秀版主
2016论坛优秀版主
2015论坛优秀版主
2014论坛优秀版主
我秀我做2014
2013论坛优秀版主
秀秀我的办公桌
晒晒工控小礼品
2012论坛优秀版主
2011论坛贡献奖
2010年论坛优秀版主
发表于:2014/10/15 16:51:13
#79楼
继续,谢谢!
我是你的朋友
工控学堂推荐视频:

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

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

109.2007