设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
PC与S7-200的自定义通信协议实现
返回列表
发新帖
PC与S7-200的自定义通信协议实现
[复制链接]
2747
|
1
|
2006-3-27 01:15:00
|
显示全部楼层
|
阅读模式
PC与S7-200的自定义通信协议实现
1)协议功能
实现读/写I,Q,VR,M区功能,读最大数据量为246(255-9)个字节,写数据量最大为255字节,帧格式为16进制形式,对于其他功能可以在SBR3中添加相应实现代码。
注:a)写数据量受PLC的VB区大小和指令限制,协议可以实现1个字的操作
b)写IB区后实际上输入的是脉冲信号,不能保持
C)地址/数据都是高位在前,低位在后
2)帧格式(fig1)
错误代码定义
写命令成功――00
帧格式错误――01
帧校验错误――02
超时错误――03
3)协议流程
实现以上协议的程序流程(fig2)。
4)变量说明
M31.0帧头标志(一帧的起始)
M31.1接收到一帧标志
T37通信超时计时器(5秒)
VB1401-1699接收到的命令帧
VB1700-发送缓冲区(VB1700为响应帧的大小,VB1701-1955为发送数据)
VD2000(vb2000-2003)接收缓冲区的指针(指向VB1401开始的数据区域)
VW2004接收字符计数器
VB2006接收到的命令帧的BCC值
VW2007命令帧长度
VD2010(vb2010-2013)响应帧的指针变量(指向VB1701开始的数据区域)
VB2014响应帧的校验值
VB2015错误代码
VD2020(vb2020-2023)I/Q/VB/M源地址
VD2024(vb2024-2027)读/写操作地址
VD2030(vb2030-2033)偏移地址中间变量
VW2034循环指令的Index变量
VW2036求校验数据大小变量(帧长度减去2即bcc校验和结束符)
5)程序模块说明
MAIN主程序
SBR0通信初始化(调用子程序1)
SBR1缓冲区初始化
SBR2命令帧分析(命令帧无错,调用子程序3,否则调用SBR4)
SBR3组织响应帧并发送到串口
SBR4发送错误响应帧(错误代码为00时表示写操作成功)
INT0接收中断程序(在缓冲区存放命令帧,要求前一命令帧已经处理完)
INT1发送完中断程序(调用SBR1清空缓冲区)
6)调试界面
作者写的一个与S7-200PLC调试工具的界面(fig3)。在参数设置中可以设定发送间隔和发送次数,显示可设置为16进制或ASCII码方式。
作者写的一个与串口调试工具的界面(fig4),可以发送16进制字符串和ASCII码字符串。在参数设置中可以设定发送间隔和发送次数。
7)结束语
上位机软件用了通信控件:spcomm(免费控件,很好注册),在DELPHI下非常好用(用它进行文件传输的结果也比较满意)。试验表明本协议的实现在可靠性、实时性和通信数据量上基本满足了上位机数据采集的需要。
Name:施奇峰 E-mail:nuststeven@263.netstevenboy@163.net
TEL:025-4312851Addr:南京理工大学自动化研2000Date:2001/9/20
注:本文为施奇峰所作,版主杜学强协助对图片进行了整理,感谢施奇峰的奉献。
顺便说一下,各位网友好的帖子中若有图片,不便直接发布,可发至xq-du@yeah.net,本人非常荣兴地为您服务,以便网友得到更大收益。请发纯文本文件,每个图片直分别作成GIF格式文件并标明图号,在文本中标记各图的位置,每篇至多3个图片。谢谢!
回复
举报
lthlycyj
|
2009-4-4 23:35:00
|
显示全部楼层
谢谢,学习了!!!
回复
支持
反对
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
docsky
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』