一、 硬件以及通讯原理分析

西门子S7-200系列PLC拥有RS-485串行口,所以要使MCS51单片机与S7-PLC进行通讯,可以采用几种通讯方式。其中之一就是可以通过MCS-51的串行口与MAX485芯片相接,然后与S7-200 PLC的RS-485口进行通讯,其硬件连接如图1所示。

S7-200 PLC是串行通讯方式最为丰富的小型PLC,支持多种通信协议,如点对点接口协议(PPI协议)、多点接口协议(MPI协议)和PROFIBUS协议以及自由通信协议等。其中自由通信协议又叫用户定义协议,利用自由端口模式,可以实现用户定义的通信协议,连接多种智能设备,使用起来非常方便,在第三方工程接入中取得了巨大的成功。

在自由端口模式下,PLC的串行通信接口由用户来控制,通过梯形图程序以及和单片机的汇编语言进行配合,来使用完成中断、字符接收中断、发送完成中断等,通信协议由用户完全控制。这时单片机处于主机状态,由单片机主动发送握手信号,PLC接到信号后被动反馈信息即可。

图1 MCS-51单片机与S7-200的硬件接线图

二、 通信系统设计

2.1 通信协议设计
定义根据经验和有关参考资料,定义协议结构和参数。
(1)通信波特率为9.6kbps,无校验,8个数据位,1个可编程位,1位起始位,1位停止位。
(2)定义通信协议的数据流结构的格式为起始码、命令码、元件首址、字节数、数据块、BCC校验码和结束码。
● 起始码:表示单片机与PLC开始发送数据,是数据流第一个字符,告诉PLC开始进行通信了,可以用00H表示

● 命令码:表示单片机对PLC的各种操作:
40H:读取目标元件 I、Q、V、M、SM、L、T、C等的数据或状态;
41H:修改目标元件 I、Q、V、M、SM、L、T、C等的数据或状态;
42H:强制目标单元为ON;
43H:强制目标单元为OFF;

● 元件首址:表示PLC内部的元件类型以及寄存器的地址(但不能表示一个位地址)。前两个字节表示寄存器类型,后两个字节表示寄存器号。00 00(H):I寄存器区 01 00(H):Q寄存器区。02 00(H):M寄存器区 08 00(H):V寄存器区;

● 字节数:从元件首地址起,读取或写入PLC元件的数据个数数据块:准备读取或者写入PLC的数据或状态;

● BCC校验码:在传输过程中,指令有可能受到任何的干扰而使原来的数据信号发生扭曲,此时的指令当然是错误的,为了侦测指令在传输过程中发生的错误,接收方必须对指令作进一步的确认工作,以防止错误的指令被执行,最简单的方法就是使用校验码。BCC校验码的方法就是将要传送的字符串的ASCII码以字节为单位作异或和,并将此异或和作为指令的一部分传送出去;同样地,接收方在接到指令后,以相同的方式对接收到的字符串作异或和,并与传送方所送过来的值作对比,若其值相等,则代表接收到的指令是正确的,反之则是错误的

● 结束码:结束字符标志着指令的结束,在本例中被定义为FFH,不同的PLC从站可以定义不同的结束字符以接收针对该PLC的指令。

2.2 通信程序的实现
(1)单片机端程序的实现。单片机在主程序中初始化,采用串行口工作方式3[2],波特率为9.6kbps,采用单片机作为主机,向PLC进行呼叫,定期读取数据或者写入数据,其程序流程图参见图2。

图2 单片机端通讯程序流程图

(2)PLC端程序流程图的实现。PLC端作为从机,采用梯形图或者STL编程,主要是先设置通讯协议,然后按照协议把采集到的数据进行处理,再发送给主机单片机,其具体的程序流程图如图3所示。

图3 PLC端通讯程序流程图

三、结束语

本文利用单片机与PLC的串行通信方法,成功的应用于多个项目中,实际表明该方法简单可靠,成本低,而且易于扩充经济实用的其它功能,如A/D、D/A等功能,取得了较好的社会效益和经济效益。

【工控老马】单片机与西门子S7-200通信原理详解相关推荐

  1. 【工控老马】基于西门子S7-200PLC的跑马灯控制系统的设计方案详解

    基于西门子S7-200PLC的跑马灯控制系统设计方案 1.设计背景 应用 S7-200 PLC跑马灯设计的硬件电路,并利用OB1的梯形图控制程序设计.通过控制 S7-200 PLC的定时继电器的功能来 ...

  2. 【工控老马】用西门子PLC构成管道压力控制系统

    摘要:系统由压力传感器.压力.可编程控制器.水泵.按钮等组成,编程控制器程序是按照一定顺序开机或停机,保持系统压力相对稳定. 1引言 随着科学技术的发展,世界上各大公司相继生产出许多不同类型的可编程控 ...

  3. 【工控老马】modbus tcp详解

    老马带你详细了解modbus tcp规范 1.该规范的发展概况 该MODBUS/TCP规范在万维网上公开发行.它表明开发者的意愿是把它作为工业自动化领域具有互用性的标准. 既然MODBUS和MODBU ...

  4. 【工控老马】labview 调用HslCommunication.dll 教程

    LabVIEW通过Hs ICommun icat ion 组件与西门门子Smart200 PLC 通信 1.所需软件 LabVIEW.HslCommunication.dll 2. HslCommun ...

  5. 【工控老马】西门子PLC Siemens PLC TCP协议详解

    Siemens PLC TCP 协议详解 说明:蓝色文字表示已经破解部分,[红色文字] 表示对破解部分数字的说明,黑色文字表示对破解部分的进一步说明,黑色斜体加粗文字表示未破解部分,高亮文字部分表示驱 ...

  6. 【工控老马】西门子PLC s7-300SCL编程详解

    SCL编程详解 一. 数据类型: 注:还有两种类型:P:POINTER(指针数据类型).A:ANY(任何类型) 数组的定义:M1:ARRAY[n0-m0,n1-m1] OF INT; 二. 寻址 ○1 ...

  7. 【工控老马】micro logix1400进行modbus通讯

    一.plc作为modbus主站 1.实验目的 在实际应用中,不可避免的会遇到通讯,modbus通讯就是日常应用频繁的通讯之一:本实验的目的就是利用micro logix1400的plc进行modbus ...

  8. 【工控老马】ABB AC500 系列PLC与WEST 8100+系列仪表的ASCII通讯指南

    一.硬件设置 仪表设定: 在P8100 的组态级(Configuration Mode)中 设置好以下几个参数: 1.通讯协议(Prot): 请改为ASC I (ASC II 通讯协议) 2.通讯速率 ...

  9. 【工控老马】ASP问与答40篇

    问:什么是ASP? 答:ASP是Active Server Page的缩写,意为"活动服务器网页".ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行 ...

最新文章

  1. 水母智能联合蚂蚁森林、犀牛智造等,用AI助力非遗出圈,39万人开工得“福”
  2. P3382 【模板】三分法,难度⭐⭐⭐
  3. Kafka 安装配置及快速入门
  4. 小师妹学JavaIO之:文件写入那些事
  5. python 列表 元祖 字典,Python 列表、元组、字典
  6. 安装McAfee 8.7i 提示错误1920怎么办?
  7. Android学习笔记(四):android画图之paint之setXfermode
  8. 手把手教你如何用 TensorFlow 实现基于 DNN 的文本分类
  9. jQuery按ID选择
  10. EtherCAT主站SOEM函数详解---- ecx_statecheck
  11. dtech串口驱动 linux,帝特USB转串口驱动
  12. 5、Cloudsim基础类
  13. pytorch获取模型的中间层输出结果
  14. 05机器学习--多项式回归与模型泛化及python实现
  15. 修改组策略就是修改注册表_如何查看组策略对象修改了哪些注册表设置
  16. 正交矩阵的列向量组是标准正交向量组
  17. Universal-Image-Loader(UIL) 源码详解
  18. jquery 分页
  19. 基于Chebyshev融合头狼引导的狼群协同围攻策略的改进灰狼算法
  20. 47页PPT | 如何利用Python进行自动化办公?

热门文章

  1. 事务-2 Spring与Mybatis事务实现原理
  2. 艾美捷彗星检测试剂盒(单细胞凝胶电泳)化验原理及研究
  3. 2016第四届互联网运营大会 重磅嘉宾分享互联网运营经验和方法
  4. 纯CSS实现目录自动编号
  5. XCTF---MISC---看雪看雪看雪
  6. 阿里再推内置锂电池服务器 Facebook等国际巨头也上马相关技术
  7. (Visio)重新编辑画好的任意多边形
  8. 网络类型及pap、chap身份验证
  9. JAVA JDK 1.6 API中文版.CHM打开chm提示,“ 已取消到该网页的导航”
  10. mysql oracle clob_MYSQL 转 ORACLE CLOB类型