西门子S7—200PLC自由口通讯的两种Delphi实现方法

合集下载

西门子S7—200PLC自由口通讯的两种Delphi实现方法

西门子S7—200PLC自由口通讯的两种Delphi实现方法

西门子S7—200PLC自由口通讯的两种Delphi实现方法【摘要】本文介绍了PC机与PLC实现自由口通信的两种方法。

上位机采用的是PC机,利用Delphi6.0编写应用程序,详细对其中的两种方式做了详细说明。

下位机采用西门子公司的S7-200PLC,文中列出了相应的程序说明。

【关键词】计算机通信;PLC;Delphi;自由口通信1.引言随着大规模和超大规模集成电路等微电子技术的迅猛发展,PLC作为一种新型高能的控制器已经越来越广泛地用于工业现场控制的各个领域,它有着高可靠性、低能耗、易操作、易安装等优点。

但是,由于PLC的人机交互能力差,独立的PLC不能完成工业控制流程的实时和动态监控,PC机与PLC的通讯就愈加显得重要。

通过PLC与PC机的通讯,使得个人计算机和其他智能控制设备交换数字信息,使系统形成一个统一的整体,方便实现分散控制和集中管理。

2.S7-200的通信与PC机的通信机理S7-200 PLC的CPU支持多种通信协议,包括:点到点接口协议(PPI)、多点接口协议(MPI)、Profibus协议、自由通信接口协议和USS协议。

自由通讯口模式是S7-200PLC一个很有特色的功能,用户可以通过用户程序对通信口进行操作并且自己定义通信协议。

应用该通信方式,S7-200可以方便地和任何通信协议已知、具有串口的智能设备和控制器进行通信。

通过设定特殊存储字节SMB30(端口0)或SMB130(端口1)允许自由口模式,设置它的波特率、奇偶校验和数据位数。

用发送指令(XMT)和接收指令(RCV)对数据进行通信操作。

值得注意的一点是:只有在CPU处于RUN 模式时才允许自由口模式,当CPU处于STOP模式时自由口模式将自动转换为PPI协议模式。

用反应CPU模块上的工作方式的特殊存储器位SM0.7来控制自由口通讯方式的进入,当SM0.7为1时CPU处于RUN模式,可将通信口置为自由口模式。

在PC机与PLC的通讯过程中,主要是由PC机发送信息来强制控制PLC 的状态,接收PLC发送过来的信息来显示控制状态。

西门子S7-200PLC自由口串行通信应用

西门子S7-200PLC自由口串行通信应用

西门子S7-200PLC自由口串行通信应用作者:戚博硕孙佳阳来源:《中国新通信》2014年第15期【摘要】 S7- 200PLC是西门子公司开发的具有高性价比的微型可编程控制器,该控制系统具有配置灵活、可靠性高、结构开放、控制能力强、体积小、抗干扰能力强等优点,被广泛应用于工业控制领域。

本文以西门子S7- 200PLC为例,对西门子S7- 200PLC自由口串行通信模式进行了详细的阐述,并分析了自由口串行通信实现的方式。

【关键词】西门子S7- 200PLC 自由口串行通信通信模式德国西门子公司生产的S7系列的可编程控制器就是为了满足人们对工业控制的要求生产出来的。

该系列包括用于小型化控制系统的S7-200PLC、用于控制中型系统的S7—300PLC及用于控制大型系统的S7-400PLC。

其中,S7-200PLC是集电源、CPU及I/O于一体的集成型小型单元式PLC。

其具有非常丰富的功能配置以及优秀的通信能力,用户操作起来非常容易上手,系统工作的稳定性和可靠性非常强,目前已经在相关领域中取得了巨大的成功。

因此,本文以西门子S7-200PLC为例,对西门子S7-200PLC自由口串行通信模式进行了详细的阐述,并分析了自由口串行通信实现的方式,对人们了解西门子S7-200PLC自由口串行通信具有一定作用。

一、自由口通信模式概述西门子S7-200PLC的通信端口有PPI模式和自由口模式这两种常用的通信模式。

其中PPI 模式通信协议是西门子公司根据S7-200PLC的特点专门开发的,一般情况下只对西门子内部生产的产品使用。

与PPI模式完全不同的是自由口模式,它完全对外开放,在这种模式下,用户可以根据自己的需要对通信协议进行定义。

目前,许多公司使用的第三方设备都支持自由口通信模式。

西门子S7-200PLC可以通过选择自由口通信模式的方式达到控制串口通信的目的。

而且,利用自由口通信模式可以使计算机与S7-200PLC之间的通信变得更加稳定和高效。

S7_200PLC与Danfoss变频器自由口通信的实现_孙晓明

S7_200PLC与Danfoss变频器自由口通信的实现_孙晓明

第31卷 第4期2009年8月武汉理工大学学报 信息与管理工程版J OURNAL OF WUT (I N FORM AT I ON &MANAGE M ENT E NG I NEER I NG )V o.l 31N o .4A ug.2009文章编号:1007-144X (2009)04-0521-04文献标志码:AS7-200PLC 与Danfoss 变频器自由口通信的实现孙晓明,敖 非(武汉理工大学自动化学院,湖北武汉430070)摘 要:在超细粉气流磨生产线现场,为了实现PLC 对两台变频器实施监控,需先解决小型系统中PLC 与变频器之间的通信可靠问题。

研究了西门子S7-200PLC 和D anfoss VLT 2900变频器之间的通信关系,依据D anfoss V LT 2900变频器的FC 通信协议,选择S7-200PLC 的自由口工作模式,编写通信程序,气流磨生产线现场运行的结果表明,S7-200PLC 与D anfoss VLT 2900变频器的自由口通信稳定可靠,达到了对两台D anfoss VLT 2900变频器工作状态进行实时监控的目的。

关键词:D an f o ss FC 协议;自由口通信;可编程控制器;变频器中图分类号:TP393.04DO I :10.3963/.j issn .1007-144X.2009.04.001收稿日期:2009-01-28.作者简介:孙晓明(1956-),男,山东龙口人,武汉理工大学自动化学院副教授.基金项目:国家863计划重大项目基金资助项目(2006AA11A133).PLC 和变频器在当今工控中应用越来越广泛,在传统的PLC -变频控制集成系统中,变频器的启动/停止和故障监控由PLC 通过开关量实现端对端控制。

变频器频率是由PLC 通过模拟量输出端口输出0~5(10)V 或4~20mA 信号控制,需要PLC 配置昂贵的模拟量输出端口模块。

S7-200PLC的自由口通信工程应用

S7-200PLC的自由口通信工程应用

S7-200PLC的自由口通信工程应用笫1章S7-200 PLC的自由口通信工程应用本章由浅到深循序渐进地例举了S7-200 PLC自由口通信的三个工程应用实例。

分别从任务描述、任务剖析、解决方案、实施步骤和常见故障及排故方法这五个方面进行了描述。

第一个实例“智能立体车库系统中IC卡的应用”讲述了S7-200 PLC的自由口通信的只读功能实现方法,第二个实例“RFID在AGV(Automated Guided Vehicle)中的应用”讲述了S7-200 PLC的自由口通信的读写功能实现方法,第三个实例“S7-200 PLC在无线通信上的应用”讲述了S7-200 PLC 的自由口通过自定义通信协议实现一对多的无线通信功能。

1.1智能立体车库系统中IC卡的应用1.1.1 任务描述智能立体车库系统要求采用刷卡方式完成车辆自动出入立体车库。

当司机刷卡并设定密码后,卡信息与车辆进行绑定,车辆将自动进入车库相应的车位,当司机想取出车辆时,司机只需刷卡并通过密码验证,系统将自动从车库中寻找该卡对应的车辆并将车取出到车库。

其中控制车辆进出的控制器采用西门子S7 - 200 系列CPU226 型可编程控制器来实现。

1.1.2 任务剖析智能立体车库要求采用刷卡方式作为车辆出入立体车库的凭证,这就要求控制系统能读出卡上的信息,利用卡的信息作为身份识别把卡和车辆绑定起来。

选用在弱电系统中作为门禁或停车场系统使用者身份识别的ID卡就能满足要求。

ID卡全称为身份识别卡(Identification Card),是一种只读的感应卡,每张ID卡有一个全球唯一的芯片编码。

它靠读卡器设备感应供电并读出存储在芯片EEPROM中的唯一卡号,该卡号在封卡前一次写入,封卡后不能更改,该ID卡完全能满足车辆身份识别的要求。

同时S7-200 PLC的自由口通信能实现通过读卡器设备读出卡上信息从而完成车辆身份识别的功能。

1.1.3 解决方案该任务实现的关键是要求S7-200 PLC能读出ID卡的信息,考虑到大多数的ID读卡器设备提供了与电脑直接通信的RS232通信方式,而S7-200 CPU的通信口电气上是标准的RS-485半双工串行通信口,因此硬件上需要通过RS-232到RS485转换器把ID读卡器设备连接到S7-200 CPU的通信口上,由于PC/PPI电缆本质上就是RS-232到RS485的转换,所以也可以通过PC/PPI电缆把ID读卡器设备连接到S7-200 CPU的通信口上。

S7-300/S7-200 PLC之间自由口无线通信的设计与实现

S7-300/S7-200 PLC之间自由口无线通信的设计与实现

s c h e m e , p r o g r a m p o r t a b i l i t y , h a s a c e t r a i n r e f e r e n c e f o r s i m i l a r p r o j e c t .
Ke y wo r d s:S 7 —3 0 0 P LC; S 7 —2 00 PLC; f r e e p o r t s e t t i ng s; wi r e l e s s d a t a t r a n s mi s s i o n;
中 图分 类号 : T P 2 7 3 . 0 1
文献 标 志码 : A
文章 编号 : 1 0 0 0— 0 6 8 2 ( 2 0 1 4 ) 0 1— 0 0 7 5— 0 3
De s i g n a nd i mp l e me n t a t i o n o f t he f r e e po r t wi r e l e s s c o m m un i c a t i o n
be t we e n S 7 —2 0 0 PLC a n d S 7 —3 0 0 PLC
T0NG Ke bo
( E l e c t r o n i c a n d E l e c t r i c E n g i n e e i r n g D e p a r t m e n t , L a n z h o u P e t r o c h e mi c a l C o l l e g e o fT e c h n o l o g y ,L a n z h o u 7 3 0 0 6 0 , C h i n a )
信端 口程序设计 , 数传 电台选型及通信参数设置。该 系统运行稳定可靠, 通信方案经济、 灵活, 程序

s7-200自由口通信

s7-200自由口通信

S7-200 自由口通信关键字要点初始化RS485例程发送发送完成接收接收完成起始条件结束条件字符中断S7-200自由口通信简介S7-200 CPU的通信口可以设置为自由口模式。

选择自由口模式后,用户程序就可以完全控制通信端口的操作,通信协议也完全受用户程序控制。

一般用于和第三方串行通信设备进行通信。

自由口模式可以灵活应用。

Micro/WIN的两个指令库(USS和Modbus RTU)就是使用自由口模式编程实现的。

在进行自由口通信程序调试时,可以使用PC/PPI电缆(设置到自由口通信模式)连接PC和CPU,在PC上运行串口调试软件(或者Windows的Hyper Terminal-超级终端)调试自由口程序。

USB/PPI电缆和CP卡不支持自由口调试。

目录1自由口通信基本概念1.1 自由口通信概述S7-200PLC的通讯口支持RS485接口标准。

采用正负两根信号线作为传输线路。

工作模式采用串行半双工形式,在任意时刻只允许由一方发送数据,另一方接收数据。

数据传输采用异步方式,传输的单位是字符,收发双方以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位。

传输速率可以设置为1200、2400、4800、9600、19200、38400、57600、115200。

字符帧格式为一个起始位、7或8个数据位、一个奇/偶校验位或者无校验位、一个停止位。

字符传输从最低位开始,空闲线高电平、起始位低电平、停止位高电平。

字符传输时间取决于波特率。

数据发送可以是连续的也可以是断续的。

所谓连续的数据发送,是指在一个字符格式的停止位之后,立即发送下一个字符的起始位,之间没有空闲线时间。

而断续的数据发送,是指当一个字符帧发送后,总线维持空闲的状态,新字符起始位可以在任意时刻开始发送,即上一个字符的停止位和下一个字符的起始位之间有空闲线状态。

示例:用PLC连续的发送两个字符(16#55和16#EE)(程序如图3和图4),通过示波器测量CPU通讯端口管脚3/8之间的电压,波形如下图1.:图1.两个字符(16#55和16#EE)的波形图示例说明:16进制的16#55换算成2进制等于2#01010101,16进制的16#EE换算成2进制等于2#11101110。

S7_200PLC与PC自由口通讯的多种实现方法

S7_200PLC与PC自由口通讯的多种实现方法

S7-200PLC与PC自由口通讯的多种实现方法1 引言西门子S7-200PLC是德国西门子公司生产小型PLC。

S7-200以其高可靠性、指令丰富、内置功能丰富、强劲通讯能力、较高性价比等特点,工业控制领域中被广泛应用。

S7-200PLC突出特点之一是自由口通讯功能。

如何实现S7-200PLC与个人计算机互联通信,是S7-200PLC应用技术关键。

可编程控制器与计算机之间通讯一般是RS-422口或RS-232C口进行,信息交换方式为字符串方式,运用RS-232C或RS-422通道,容易配置一个与计算机进行通信系统,将所有软元件数据和状态用可编程控制器送入计算机,由计算机采集这些数据,进行分析及运行状态监测。

用计算机改变可编程控制器设备初始值和设定值,实现计算机与可编程控制器直接控制,一旦确定了可编程控制器控制指令,就能很方便与计算机连接。

2 S7-200自由口通讯模式S7-200支持多种通讯模式,如点点接口(PPI)、多点接口(MPI)、Rrofibus DP等。

PPI等通讯协议主要用于西门子系列产品之间通讯以及对PLC编程。

自由口模式下,可由用户控制串行通讯接口,实现用户自定义通讯协议。

用户可以用梯形图程序调用接收中断、发送中断、发送指令(XMT)、接受指令(RCV)来控制通信操作。

自由口模式下,通信协议完全由梯形图程序控制。

S7-200CPU上通信口是与RS-485兼容9针D型连接器,PLC还提供了实现RS-485与PC机上RS-232C相连接PC/PPI电缆,利用它可以方便实现S7-200系列PLC与PC之间硬件连接。

S7-200编程软件为STEP7-Micro/WIN32,该软件有STL、FBD和Ladder三种编程模式,有SIMATIC指令和IEC131-3指令两种指令。

本文所给出范例是使用SIMATIC指令STL编程。

3 S7-200 PLC端通讯程序实现PLC程序分为主程序和中断程序。

西门子S7-200 自由口通信实用文档

西门子S7-200 自由口通信实用文档

主题:应用探讨—S7-200 自由口通信—发帖整理强大而灵活的自由口通信能力,是S7-200系统的一个重要特点。

S7-200 CPU的RS485通信口提供了建立在串行通信基础上的“自由”通信能力,数据传输协议完全由用户程序决定。

通过自由口方式,S7-200可以与串行打印机、条码阅读器等通信。

而S7-200的编程软件也提供了一些通信协议库,如USS协议库和MODBUS RTU从站协议库,它们实际上也使用了自由口通信功能。

开设本话题的目的,在于澄清自由口通信的基本概念,强调使用中的要点,讨论应用的常见问题。

经过此次集中交流,解决了如下一些问题:1. 自由口通信基本概念2. 自由口通信编程指令的使用和技巧3. 自由口通信常见问题4. 产品功能建议更多信息请参考下面文档。

“下载中心”参考文档:文档编号“1109582”——S7-200《可编程控制器系统手册》文档编号“A0136”——《西门子 S7-200•LOGO!•SITOP参考》以下为本次探讨的发帖整理,查看原始交流内容请点击此处。

1.自由口通信基本概念(1楼——5楼)2.自由口通信编程指令的使用和技巧(6楼——15楼)3.自由口通信容易犯的错误(16楼——24楼)4.产品功能建议(25楼——27楼)quote:以下是引用BABU在2011-01-20 15:17:08的发言:我回来了,项目终于做完了,可以回家过年了,:)。

自由口通信真是折腾的我好惨啊,简单回顾一下,希望对像我这样的菜鸟有些借鉴作用。

先感谢一下西门子论坛和热线,没少骚扰他们。

在完全没有准备的情况下甲方又加进一个仪表,做什么自有口通信,晕阿!没办法,迎着上吧!网上搜资料,看手册,越看越糊涂!时间紧迫,还是直接上手做吧。

首先是把PLC和仪表连接起来,可仪表的口是rs232的,热线工程师告诉我得做rs232/485的转换,打车到市场上买个转换器(打车钱比设备钱还多,可见现场多么偏僻阿),听卖转换器的老板给我分析了一下每种的区别——不光是价格的区别,说实在的,当时非常惭愧,老板懂的比我多多了。

西门子PLC 自由口通讯

西门子PLC 自由口通讯

1.自由口通讯基本概念1.1 自由口通信概述1.2 自由口通信要点1.3 发送和接收指令2.自由口通信使用指南2.1 通讯口初始化2.2 发送数据:2.3 接收数据2.4 自由口通信例程1.自由口通讯基本概念1.1 自由口通信概述S7-200PLC的通讯口支持RS485接口标准。

采用正负两根信号线作为传输线路。

工作模式采用串行半双工形式,在任意时刻只允许由一方发送数据,另一方接收数据。

数据传输采用异步方式,传输的单位是字符,收发双方以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位。

传输速率可以设置为1200、2400、4800、9600、19200、38400、57600、115200。

字符帧格式为一个起始位、7或8个数据位、一个奇/偶校验位或者无校验位、一个停止位。

字符传输从最低位开始,空闲线高电平、起始位低电平、停止位高电平。

字符传输时间取决于波特率。

数据发送可以是连续的也可以是断续的。

所谓连续的数据发送,是指在一个字符格式的停止位之后,立即发送下一个字符的起始位,之间没有空闲线时间。

而断续的数据发送,是指当一个字符帧发送后,总线维持空闲的状态,新字符起始位可以在任意时刻开始发送,即上一个字符的停止位和下一个字符的起始位之间有空闲线状态。

示例:用PLC连续的发送两个字符(16#55和16#EE)(程序如图3和图4),通过示波器测量CPU通讯端口管脚3/8之间的电压,波形如下图1.:图1.两个字符(16#55和16#EE)的波形图示例说明:16进制的16#55换算成2进制等于2#01010101,16进制的16#EE换算成2进制等于2#11101110。

如图所示,当数据线上没有字符发送时总线处于空闲状态(高电平),当PLC发送第一个字符16#55时,先发送该字符帧的起始位(低电平),再发送它的8个数据位,依次从数据位的最低位开始发送(分别为1、0、1、0、1、0、1、0),接着发送校验位(高电平或低电平或无)和停止位(高电平)。

S7-200(SMART)的自由口通信运用的经历

S7-200(SMART)的自由口通信运用的经历

S7-200(SMART)的自由口通信运用的经历初次试探自由口通信,从PLC读仪表数据开始,当时有一套比较老的设备,仪表是国外的,自定义的协议,国内集成商可能是仪表和接口板卡开发比较熟悉,或许是为了满足客户不同的PLC品牌需求,没有采用PLC和仪表直接通信,而是做了一块接口板,接口板和PLC之间采用数字量模式(对于PLC一侧DI 1 / DO 8+3+1+1),接口板和仪表之间采用RS232C通信。

PLC8个输出点相当于并口,3个输出点相当于读写参数编号,1个读写指令点,1个高低位指令点。

一同事有点高级语言的底子,用VB作了一个简单的读参数测试,可以接收到消息串。

于是本人饶有兴趣想试试PLC直接和仪表进行通信,翻看仪表的自定义协议,信息帧均是有指定的起始符和结束符,后面没有校验字符,现在回忆当时情况感觉还是有点幸运,如果校验复杂一点,可能就失去了继续深入的耐性了。

对照S7-200的系统手册,看XMT和RCV的指令介绍,当时对于通信指令和中断指令都不甚明了,需要一点点尝试,终于有点眉目,能够成功的读取一个参数,后来在慢慢的加入逻辑,读取多个参数,对于RCV接收机制和指令使用太过生疏,加上对中断也没有深入的概念,容易出现断线且无法恢复,后来逐渐加了一些重发之类的逻辑,形成了一个逻辑繁琐可读性极差的初级版本。

后来有一个需求,有用户使用了多套年岁较高的纺织机械,之前用的是西门子变频器和S7-200,西门子变频器老型号停产,需要更换新的型号,因为是基于通信给定频率,即使是更换西门子的新型号,也需要变动PLC频率给定部分的程序,用户干脆在一台机器上换了富士的变频器,找厂家改动了程序,后来有某国产变频器经销商想说服用户更换他家的变频器,用户答应给试机的机会,不过需要经销商来适配PLC程序,经过辗转,一同学找我给点建议,本人对通信的经验实在是可怜,不敢乱说,只能说程序是可以适配,但水平有限,经验不够,还是另找高手实施。

S7—200PLC与计算机自由通信的实现

S7—200PLC与计算机自由通信的实现

龙源期刊网 S7—200PLC与计算机自由通信的实现作者:程阔来源:《阜阳职业技术学院学报》2014年第03期摘要:主要介绍西门子S7-200的自由通信口与计算机的串口进行通讯的方法,计算机中采用VB进行通信编程,从而可以实现计算机对PLC的直接控制。

该通讯方式具有效率高、易实现、硬件配置简单等特点,因而将在工业控制领域中被应用。

关键词:自由通信;VB;串行通信口中图分类号:TP31 文献标识码:A 文章编号:1672-4437(2014)03-0038-04通信也就是数据的一种交换,为了实现与已知的控制设备进行通信,提高自动化控制系统的灵活性、集成性,许多PLC制造商相继的开发出了方便、灵活的自由端口通讯方式,方便用户。

诸如Mitsubishi公司的FX2系列PLC,OMRON公司的CJM1系列的PLC,SIEMENS公司的S7-200系列PLC等都提供了自由端口通信模式。

自由端口通信是指PLC提供了串行的通讯硬件,以及用于定制通讯协议的相关指令,在自动化控制系统中,与PLC连接的控制设备的通讯协议已知时,可以在PLC中进行编程定制通讯协议,即可与控制设备进行数据通讯。

一、S7-200通讯指令及特殊字节采用自由端口通信方式时,S7-200的RS485通信口完全可由用户控制,可以与任何协议已知的智能设备进行通信,在这种情况下通信协议完全由用户制定,S7-200提供了用于进行通讯协议定制的特殊标志位以及相关的通信指令。

(一)特殊标志字节用于S7-200自由端口通讯模式定义的特殊标志字节有SMB30和SMB130,SMB30用于PORT0的通讯,SMB130用于PORT1的通讯,两者的格式完全一样。

8位的含义如下表:(二)接收信息的状态字节S7-200在自由端口通信时用于接受信息的状态有SMB86和SMB186,SMB86用于PORT0的通讯,SMB186用于PORT1的通讯,两者的格式完全一样。

8位的含义如下表:。

西门子S7-200PLC如何通过自由口通信控制变频器运行

西门子S7-200PLC如何通过自由口通信控制变频器运行

西门子S7-200PLC如何通过自由口通信控制变频器运行一、S7-200如何通过自由口通信控制西门子变频器的运行1、西门子变频器的通信协议是固定的。

如A、A′格式。

控制电机的启停用A′格式,要改变变频器的运行频率,使用A格式。

2、S7-200PLC根据西门子变频器的通信协议,通过自由口发送数据到变频器中,实现对西门子变频器的正转、反转、停止及修改运行输出频率。

二、西门子变频器通信协议总和校验计算:频率值对应的ASCII码:频率数据内容H0000~H2EE0变成十进制即为0~120Hz,最小单位为0.01Hz。

如现在要表示数据10Hz,即为1000(单位为0.01Hz),1000转换成十六进制为H03E8,再转换成ASCII码为H30H33H45H38。

总和校验代码总和校验代码是由被检验的ASCII码数据的总和(二进制)的最低一个字节(8位)表示的2个ASCII码数字(十六进制)三、S7-200自由口通信1、通信端口控制字节2、发送指令XMT与接收指令RCV说明:(1)发送与接收指令可以方便地发送或接收最多255个字节的数据。

(2)PORT指定发送或接收的端口。

(3)TBL指定发送或接收数据缓冲区,第一个数据指定发送或接收的字节数。

(4)发送完成时可以调用中断,接收完成时也可调用中断.四、项目实现用S7-200PLC自由口通信方式控制西门子变频器,拖动电机正转启动与停止,并能改变变频器的运行频率。

设变频器站号为1.正转启动的代码是:H05H30H31H46H41H31H30H32H38H31停止的代码是:H05H30H31H46H41H31H30H30H37H46把变频器运行输出频率改为20Hz的代码是:H05H30H31H45H44H31H30H30H31H04H42H351、设置变频器参数2、编写PLC自由口通信控制程序总结:1、作自由口通信时,一定要先研究要通讯设备的通信协议和数据格式。

2、作自由口通信时,如果要求PLC既发送数据,又接收数据。

S7-200系列自由口通讯的实现及应用

S7-200系列自由口通讯的实现及应用

S7-200系列自由口通讯的实现及应用1 引言为了达到和通讯协议已知的控制设备进行数据交换,以提高自动化控制系统的灵活性,很多plc制造商都相继的开发出了方便、灵活的自由口通讯方式,例如三菱公司的fx2系列plc, omron公司的cjm1系列的plc,西门子公司的s7-200系列plc等都提供了自由口通讯模式。

自由口通讯是指plc提供了串行的通讯硬件,和用于定制通讯协议的相关指令,在控制系统中,当要和plc连接的控制设备的通讯协议已知时,可以在plc中进行编程定制通讯协议,和控制设备进行数据通讯。

本文主要介绍西门子s7-200的自由口和计算机的串口进行的通讯,计算机中采用visual basic进行编程,从而实现计算机与可编程控制器的直接控制。

该通讯方式具有效率高、容易实现、通讯硬件简单、容易配置等特点在工业控制领域中被广泛应用。

2 s7-200通讯指令及特殊字节采用自由口通讯方式时,s7-200上的rs485口完全由用户控制,可以与任何协议已知的设备进行通讯,在这种情况下通讯协议完全由用户制定,为此,s7-200提供了用于进行通讯协议定制的特殊标志位以及相关的通讯指令。

特殊标志字节s7-200用于自由口通讯模式定义的特殊标志字节有smb30和smb130,smb30用于s7-200的端口0的通讯,smb130用于s7-200的端口1的通讯,两者的格式一样,下面我们以smb130为例,介绍其组成。

smb130各位的含义如下:pp:两位用于选择通讯的校验方式当这两位的组合是:00无校验 01 偶校验 10 无校验 11 奇校验d:这一位用于选择通讯的数据位数 d=1时7个数据位,d=0时8个数据位bbb:用于选择自由口通讯是的波特率,这三位的组合和通讯波特率的关系如下:000 ——38400bps001 ——19200bps010 ——9600bps011 ——4800bps100 ——2400bps101 ——1200bps110 —— 600 bps111 —— 300 bpsmm: 用于通讯协议的选择,当这两位的组合是:00 ppi从站模式 01 自由口通讯模式 10 ppi主站模式接收信息的状态字节s7-200在自由口通讯时用于接受信息的状态有smb86和smb186,smb86用于s 7-200的端口0的通讯,smb186用于s7-200的端口1的通讯,两者的格式一样,下面我们以smb186为例,介绍其组成。

plc(s7-200)通过自由通讯口方式与变频器通讯(vlt)

plc(s7-200)通过自由通讯口方式与变频器通讯(vlt)

PLC(S7-200)通过自由通讯口方式与变频器通讯(VLT)1 引言在传统的PLC——变频控制集成系统中,变频器的启动/停止与故障监控由PLC通过开关量实现端对端控制。

变频器频率是由PLC通过模拟量输出端口输出0~5(10)V或4~20mA信号控制,需要PLC配置昂贵的模拟量输出端口模块。

变频器出现故障时由PLC 读取变频器的故障报警触点,对具体故障原因并不清楚,需查询变频器报警信息后再阅读变频器说明书才知道。

随着交流变频控制系统及通讯技术的发展,可以利用PLC及变频器的串行通讯的方式来实现PLC对变频器的控制。

2 变频器的选型DANFOSS-VLT系列变频调速器提供串行通讯技术的支持。

它所支持的串行通讯技术包括标准RS-485、PROFIDRIVE、LONWORKS在内的多种现场总线方式。

其中,RS-485通讯方式为用户提供了无需附加任何费用的、最为廉价实用的串行通讯方式。

只需按照DANFOSSVLT变频器规定的通讯数据结构、控制字和状态字格式发送数据即可实现与VLT变频的通讯。

VLT为用户提供了两种控制字和状态字格式标准:即DANFOSS标准的DANFOSS-FC 协议和PROFIBUS标准的PROFIDRIVE协议。

其中FC协议为用户提供了更多的与VLT 有关的控制信息和状态信息。

本项目中选用DANFOSS-FC协议。

3 PLC的选型西门子工控产品在工控领域应用市场中有较高的占有率。

S7-200系列是西门子SIMATIC-PLC家族中的小规模PLC成员,自由通讯口方式是S7-200 PLC的一个特色的功能,它使S7-200PLC可以由用户自己定义通讯协议。

利于自由通讯口方式,在本系统中PLC可以与变频器和方便连接。

PLC通过自由通讯口方式与变频器通讯,控制变频器的运行,读取变频器自身的电压、电流、功率、频率和过压、过流、过负荷等全部报警信息等参数,这比通过外部端口控制变频器的运行具有较高的可靠性,节省了PLC宝贵的I/O端口,又获的了大量变频器的信息。

s7200自由口通讯教程及编程实例(二)

s7200自由口通讯教程及编程实例(二)

S7-200自由口通讯教程及编程实例(二)排行榜收藏打印发给朋友举报发布者:admin热度19票浏览175次【共1条评论】【我要评论】时间:2009年11月11日19:03三、PLC编程现在,我们已经知道如何用AT指令发送短消息,剩下的工作是用PLC程序来发送这些AT指令。

S7-200的通讯端口为RS-485接口,RS-485接口为半双工接口,因此,编写PLC 程序的关键是避免在通讯端口上同时发送和接收。

我们下面将介绍一种标准的编程模式,按照这种模式编写自由口通讯程序可以有效的避免因同时发送和接收造成的通讯冲突,从而保证程序的正常运行。

1. 初始化Network 1LD SM0.1MOVB 9, SMB30MOVB 2#, SMB87MOVB '>', SMB88MOVW +5, SMW92MOVB 255, SMB94ATCH INT_0, 23ATCH INT_1, 9ENI将上面这段程序添加到主程序中,对PLC的端口0进行初始化。

这段程序以SM0.1为触发条件,每当PLC进入RUN状态时执行一次。

MOVB 9, SMB30该指令将端口0设置为9600,8,N,1 自由口方式MOVB 2#, SMB87SM87.7=1 允许端口0接收字符SM87.6=1 当检测到与SMB88中相同的字符时开始接收,并将该字符当作信息的首字符SM87.5=0 不检测信息的结束字符SM87.4=0 不检测端口空闲状态SM87.3=0 定时器为内部字符定时器,意思是PLC开始接收信息后(检测到起始字符),每接收到一个字符就启动定时器,当定时器到达在SMW92中设置的时间后,即认为定时器超时SM87.2=1 允许在定时器超时后停止接收,并产生接收完成中断SM87.1=0 忽略Break条件MOVB '>', SMB88设置接收起始字符为ASCII码的”>”,当TC35收到AT+CMGS=后将返回”>”,当PLC 收到”>”后发送PDU数据包MOVW +5, SMW92设置定时器超时时间为5 msMOVB 255, SMB94设置RCV指令接收的最大字符数位255ATCH INT_0, 23中断时间23为端口0接收完成中断,将该中断连接到中断0ATCH INT_1, 9中断时间9为端口0发送完成中断,将该中断连接到中断1ENI中断允许2. 接收TC35的信息Network 2LD SM0.0RCV VB100, 0在初始化程序中,端口0以被允许接收来自TC35的信息,在主程序中添加上面的程序将端口0置于接收状态。

自由口模式下S7-200PLC与计算机的通信

自由口模式下S7-200PLC与计算机的通信

自由口模式下S7-200PLC与计算机的通信本例说明如何以自由协议实现计算机与S7-200的通信,计算机作为主站,可以实现对PLC 从站各寄存器的读/写操作。

---- 计算机通过COM口发送指令到PLC的PORT0(或PORT1)口,PLC通过RCV接收指令,然后对指令进行译码,译码后调用相应的读/写子程序实现指令本例说明如何以自由协议实现计算机与S7-200的通信,计算机作为主站,可以实现对PLC 从站各寄存器的读/写操作。

----计算机通过COM口发送指令到PLC的PORT0(或PORT1)口,PLC通过RCV接收指令,然后对指令进行译码,译码后调用相应的读/写子程序实现指令要求的操作,并返回指令执行的状态信息。

通信协议----在自由口模式下,通信协议是由用户定义的。

用户可以用梯形图程序调用接收中断、发送中断、发送指令(XMT)、接受指令(RCV)来控制通信操作。

在自由口模式下,通信协议完全由梯形图程序控制。

指令格式定义计算机每次发送一个33字节长的指令来实现一次读/写操作,指令格式见表1 说明:1.起始字符----起始字符标志着指令的开始,在本例中被定义为ASCII码的"g",不同的PLC从站可以定义不同的起始字符以接收真对该PLC的指令。

2.指令类型----该字节用来标志指令的类型,在本例中05H代表读操作,06H代表写操作。

3.目标PLC站地址----目标PLC站地址占用指令的B2、B3两个字节,以十六进制ASCII码的格式表示目标PLC 的站地址。

4.目标寄存器地址----在PLC内部可以用4个字节来表示一个寄存器的地址(但不能表示一个位地址)。

前两个字节表示寄存器类型,后两个字节表示寄存器号。

00 00(H):I寄存器区01 00(H):Q寄存器区02 00(H):M寄存器区08 00(H):V寄存器区例如:IB000的地址可表示为00 00 00 00(H)VB100的地址可表示为08 00 00 64(H)5.读/写字节数M----当读命令时,始终读回从目标寄存器开始的连续8个字节的数据(转换为十六进制ASCII 码后占用16个字节),可以根据自己的需要取用,M可以任意写入。

S7-200PLC与PC自由口通讯的多种实现方法

S7-200PLC与PC自由口通讯的多种实现方法

S7-200PLC与PC自由口通讯的多种实现方法
黄祥国;黄小文
【期刊名称】《机械》
【年(卷),期】2006(0)S1
【摘要】讨论了西门子 S7-200PLC 自由口通讯的多种实现方法,在 PLC 端使用SIMATIC 指令、在 PC 端使用 VC6.0中的MSComm 控件和 CSerialPorts 类、VB6.0中的 MSComm 控件或利用 PcommPro 软件来实现了通讯程序的设计,并给了相应的程序的部分代码。

【总页数】3页(P119-121)
【关键词】可编程控制器;数据传输;自由口;VC++;VB6.0
【作者】黄祥国;黄小文
【作者单位】武汉理工大学机电学院
【正文语种】中文
【中图分类】TM571.61
【相关文献】
1.如何在自由端口模式下实现S7-200PLC与PC的实时通讯 [J], 李振强;李丽;刘文武
2.基于VB的PC机与S7-200PLC自由口通信的实现及应用 [J], 田娟娟;蔡光起;史家顺;王晋生
3.西门子S7-200PLC自由口通讯的两种Delphi实现方法 [J], 肖珊
4.S7-200PLC与PC在自由口通讯模式下的多种通讯实现方法 [J], 无
5.S7—200PLC与PC自由口通讯的多种实现方法 [J], 黄祥国; 黄小文
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西门子S7—200PLC自由口通讯的两种Delphi实现方法
【摘要】本文介绍了PC机与PLC实现自由口通信的两种方法。

上位机采用的是PC机,利用Delphi6.0编写应用程序,详细对其中的两种方式做了详细说明。

下位机采用西门子公司的S7-200PLC,文中列出了相应的程序说明。

【关键词】计算机通信;PLC;Delphi;自由口通信
1.引言
随着大规模和超大规模集成电路等微电子技术的迅猛发展,PLC作为一种新型高能的控制器已经越来越广泛地用于工业现场控制的各个领域,它有着高可靠性、低能耗、易操作、易安装等优点。

但是,由于PLC的人机交互能力差,独立的PLC不能完成工业控制流程的实时和动态监控,PC机与PLC的通讯就愈加显得重要。

通过PLC与PC机的通讯,使得个人计算机和其他智能控制设备交换数字信息,使系统形成一个统一的整体,方便实现分散控制和集中管理。

2.S7-200的通信与PC机的通信机理
S7-200 PLC的CPU支持多种通信协议,包括:点到点接口协议(PPI)、多点接口协议(MPI)、Profibus协议、自由通信接口协议和USS协议。

自由通讯口模式是S7-200PLC一个很有特色的功能,用户可以通过用户程序对通信口进行操作并且自己定义通信协议。

应用该通信方式,S7-200可以方便地和任何通信协议已知、具有串口的智能设备和控制器进行通信。

通过设定特殊存储字节SMB30(端口0)或SMB130(端口1)允许自由口模式,设置它的波特率、奇偶校验和数据位数。

用发送指令(XMT)和接收指令(RCV)对数据进行通信操作。

值得注意的一点是:只有在CPU处于RUN 模式时才允许自由口模式,当CPU处于STOP模式时自由口模式将自动转换为PPI协议模式。

用反应CPU模块上的工作方式的特殊存储器位SM0.7来控制自由口通讯方式的进入,当SM0.7为1时CPU处于RUN模式,可将通信口置为自由口模式。

在PC机与PLC的通讯过程中,主要是由PC机发送信息来强制控制PLC 的状态,接收PLC发送过来的信息来显示控制状态。

PLC发送信息通过检测SM4.5来每半分钟发送有关PLC状态的信息,以使PC机信息更新。

3.下位机(PLC)实现
对PLC的通信编程就是对串口进行设置。

当CPU处于RUN模式时,进行自由口通信。

3.1 端口的初始化
4.上位机的Delphi实现
Delphi是Borland公司推出的一种功能强大的高级编程语言,具有可视化面向对象的特性。

将Windows编程的复杂性封装,实现可视化设计和Object Pascal 语言的有机结合,特别适于在Windows环境下图形界面和用户程度的编制。

Delphi的伸缩性很强,控件功能强大,往往只需编写较少的代码就可以实现较复杂的应用。

并且相对于WINCC、IFIX组态软件,使用Delphi会降低很多成本。

4.1 用第三方提供的控件MSComm实现
首先要将Activex控件导入Delphi中:打开主菜单[Component]选择[Import ActiveX Control],选择列表中的[Microsoft Comm Control 6.0]选项(安装VB6.0后就可以看到这个选项),单击Install按钮,编译后完成安装,这时,可以在Activex 控件页上看到一个电话图标,这就是MSComm控件。

新建一个Application项目,在主窗体Form1中添加一个MSComm控件后可进行串行口的初始化。

如设置COM口,设置发送、接收对列长度、比特率、数据帧长度、每次接受到字符即产生OnComm事件等[2]。

4.2 用API函数实现串口通信
在Windows系统下,由于应用程序不能直接访问硬件,因此只能通过调用API(Application Programming Interface)函数来完成与下层设备的数据交换。

操作系统为每个通信设备开辟了用户可定义大小的读/写缓冲区,数据进出通信端口均由操作系统后台完成,用户只需调用API函数编写串行通信程序对读/写缓冲区进行操作而已。

在Delphi中对串口编程的基本步骤是:
首先,采用CreateFile函数打开串行口,以确定本应用程序对此串口的占有权,并封锁其它应用程序对此串口的操作。

其次,DCB中记录有可定义的串行口参数,设置串行口参数时必须先用GetCommState函数将系统默认值填入DCB控制块,然后再通过调用SetCommState函数配置串行口的波特率、数据位、校验位和停止位。

然后通过ReadFile和WriteFile进行串行口的读写操作。

最后用CloseHandle函数关闭串行口。

4.3 多线程技术
为了有效克服串口通信中的停滞和反应不及时的情况,采用Delphi的多线程模式加以克服。

在PC机中,同一时间只有一个线程在运行。

由于系统为每个线程划分的时间片很小(20毫秒左右),所以看上去是多个线程在同时运行。

进程中的所有线程共享进程的虚拟地址空间,这意味着所有线程都可以访问进程的全局变量和资源。

一方面为编程带来了方便,但另一方面也容易造成冲突。

所以,如果进程既要进行长期的工作,又要响应用户的输入,那么可以启动一个线程来专门负责费时的工作,而主线程仍然可以与用户进行交互。

对于通信程序这样既要进行耗时的工作,又要保持对用户输入响应的应用来说,使用多线程是最佳选择。

主要的处理逻辑如下:进程一开始先由主线程做一些必要的初始化工作,然后主线程根据需要在适当时候建立通信监视线程监视通信口,当指定的串行口事件发生时,向主线程发送WM_COMMNOTIFY消息,主线程对其进行处理。

若不需要WM_COMMNOTIFY消息,则主线程终止通信监视线程。

多线程同时执行,将会引起对共享资源的冲突。

为避免冲突,就要用同步多线程对共享资源进行访问。

通过CraeteEvent()创建事件对象,使用SetEvent ()或PulseEvent()函数将事件对象设置成信号同步。

在应用程序中,利用WaitforSingleObject()函数等待同步的触发,等到指定的事件被其它线程设置为有信号时,才继续向下执行程序[3]。

本系统采用上位机主动的方式,将上位机与下位机的编程融为一体,不需要PLC内部的梯形图作为下位机程序,具有很好的通用性。

5.结束语
本文根据PLC和PC机的特点,介绍了两种PC机与PLC的基于Delphi通讯方法,用MScomm方法实现有封装性、继承性、多态性等特性,且编程简单;用API函数实现则有运行效率高的特点。

两者各有其优点,无论是在系统的实时性、可靠性,还是在灵活性上均获得了令人满意的效果。

参考文献
[1]李如甲.基于RS_485的智能仪表与PLC串行通讯[J].仪表技术与传感器,2011,8:34-36.
[2]王正强.VC中应用MSComm控件实现串口通信[J].电子测试,2010,5:73-76.
[3]吕实诚.多线程技术在串口通信中的应用[J].数字技术与应用,2010,2:74.
[4]林盛.基于VC的PC与PLC自由口通讯[J].当代化工,2013,7:1015-1016.
[5]吴帆.VB6.0与S7_200的自由口通讯研究[J].现代科学仪器,2011,1:48-51.。

相关文档
最新文档