西门子S7-200通讯协议
西门子S7-200PPI通信协议
西门子S7-200PPI通信协议PPI通信协议是一种主从式的通信协议,上位机即PC机为主,PLC为从。
通信开始由计算机发起,PLC予以响应。
1)、计算机按通信任务,用一定格式,向PLC发送通信命令。
2)、PLC收到命令后,进行命令校验,如无误,则向计算机发送数据E5H或F9H,作出初步应答。
3)、计算机收到初步应答后,再向PLC发送SD DA SA FCFCS ED确认命令。
这里,SD为起始字符,为10H;DA为目的,即PLC地址02H;SA为数据源,即计算机地址00H;FC为功能码,取5CH;FCS为SA、DA、FC和的256余数,为5EH;末字节ED为结束符,也是16H。
如按以上设定的计算机及PLC地址,则发送10、02、00、5C、5E、及16,6个字节的十六进制数据,以确认所发命令。
4)、PLC收到此确认后,执行计算机所发送的通信命令,并向计算机返回相应数据。
它的通信过程要往复两次才完成一次的通信,比较麻烦,但较严谨,不易出错。
SD LE LER SD DA SA FC DASP SSAP DU FCS EDSD:(Start Delimiter)开始定界符,占1字节,为68HLE:(Length)报文数据长度,占1字节,标明报文以字节计,从DA到DU的长度;LER:(Repeated Length)重复数据长度,同LESD: (Start Delimiter)开始定界符(68H)DA:(DestinationAddress)目标地址,占1字节,指PLC在PPI 上地址,一台PLC时,一般为02,多台PLC时,则各有各的地址;SA:(Source Address)源地址,占1字节,指计算机在PPI上地址,一般为00;FC:(Function Code)功能码,占1字节,6CH一般为读数据,7CH一般为写数据DSAP:(Destination Service Access Point)目的服务存取点,占多个字节SSAP:(Source Service Access Point)源服务存取点,占多个字节DU:(Data Unit)数据单元,占多个字节FCS:(Frame CheckSequence)占1字节,从DA到DU之间的校验和的256余数;ED:(End Delimiter)结束分界符,占1字节,为16H命令类型1)读命令读命令长度都是33个字节。
S7200PLC间的PPI通讯
当连接器位于终端设备时,将滑动开关拨到“ON”位置,进线电缆只接A1、B1;·当连接器位于中间设备时,将滑动开关拨到“OFF”位置,电缆接线为入线接A1、B1,出线接A2、B2;S7-200通信最经济的方式就是采用PPI协议和自由口通信协议。
对于S7-200之间进行通信,PPI协议又更适合——它比自由口通信的编程更简单!下面就对这个PPI通信进行说明——以2台S7-200通信为例,做一个实例。
设备配置:1台S7-200 CPU 226CN的PLC、1台S7-200 CPU 224XP的PLC硬件连接:原则上需要配备1条紫色的Profibus电缆、2个黑色的Profibus-DP接头。
如果需要在PLC通信时对所有在线的PLC进行监控/编程操作而不占用另外的通信口(也就是说,假如所有PLC用端口PROT1进行PPI通信,而现在要对所有PLC依次编程/监控,但又不想占用这些PLC的端口PROT0——端口PROT0可能已作它用),那么必须在其中1台PLC采用带编程口的Profibus-DP接头。
所以说,带编程口的Profibus-DP接头在整个网络中只需要一个就可以了。
这样,也就可以在某一台PLC处对在网的其它PLC进行编程/监控。
引脚分配:........S7--200 CPU上的通讯端口是符合欧洲标准EN 50170中PROFIBUS标准的RS --485兼容9针D型连接器。
下表列出了为通讯端口提供物理连接的连接器,并描述了通讯端口的针脚分配。
下面是S7-200的通信接口——D型9孔母头的引脚定义。
网络电缆的偏压电阻和终端电阻为了能够把多个设备很容易地连接到网络中,西门子公司提供两种网络连接器:一种标准网络连接器(引脚分配如表7-7所示)和一种带编程接口的连接器,后者允许您在不影响现有网络连接的情况下,再连接一个编程站或者一个HMI设备到网络中。
带编程接口的连接器将S7--200的所有信号(包括电源引脚)传到编程接口。
西门子S7-200Modbus协议
西门子S7-200Modbus协议工业控制已从单机控制走向集中监控、集散控制,如今已进入网络集约制造时代。
工业控制器连网也为网络管理提供了方便。
Modbus就是工业控制器的网络协议中的一种。
Modbus 协议是应用于电子控制器上的一种通讯约规。
通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。
它已经成为主流的工业标准之一。
他为符合Mo dbus协议的不同厂商生产的控制设备可以连成工业网络,进行集中监控。
2 Modbus RTU协议在S7-200中的应用原理2.1 Modbus RTU协议与S7-200相互关系简介S7-200 CPU上的通讯口Port0可以支持Modbus RTU协议,成为Modbus RTU从站。
此功能是通过S7-200的自由口通讯模式实现,因此可以通过无线数据电台等慢速通讯设备传输。
如果想在S7-200 CPU与其他支持Modbus RTU的设备使用Modbus RTU协议通讯,需要由有S7-200 CPU做Modbus主站。
S7-200 CPU做主站必须由用户自己用自由口模式,按相关协议编程。
在S7 -200控制系统应用中,Modbus RTU从站指令库只支持CPU上的通讯0口(Port 0)。
要实现Modbus RTU通讯,需要Step7-Micro/WIN32 V3.2以上版本的编程软件,而且须安装Step7-Micro/WIN32 V3.2 Instruction Library(指令库)。
Modbus RTU 功能是通过指令库中预先编好的程序功能块实现的。
2.2 Modbus RTU协议在S7-200中应用的基本过程(1) 首先检查S7-200控制系统中所用Micro/WIN的软件版本,应当是Step7-Micro/WIN V3.2以上版本。
(2) 检查Micro/WIN的指令树中是否存在Modbus RTU从站指令库(图1),库中应当包括MBUS_INIT和MBUS_SLAVE两个子程序。
VB与西门子S7-200PLC PPI协议通讯 - 西门子plc
VB与西门子S7-200PLC PPI协议通讯 - 西门子plc通过硬件和软件侦听的方法,分析plc内部固有的PPI通讯协议,然后上位机采用VB编程,遵循PPI通讯协议,读写PLC数据,实现人机操作任务。
这种通讯方法,与一般的自由通讯协议相比,省略了PLC的通讯程序编写,只需编写上位机的通讯程序资源。
S7-226的编程口物理层为RS-485结构,SIEMENS提供MicroWin软件,采用的是PPI(Point to Point)协议,可以用来传输、调试PLC 程序。
在现场应用中,当需要PLC与上位机通讯时,较多的使用自定义协议与上位机通讯。
在这种通讯方式中,需要编程者首先定义自己的自由通讯格式,在PLC中编写代码,利用中断方式控制通讯端口的数据收发。
采用这种方式,plc编程调试较为烦琐,占用PLC的软件中断和代码资源,而且当PLC的通讯口定义为自由通讯口时,PLC的编程软件无法对PLC进行监控,给PLC程序调试带来不便。
SIEMENS S7-200PLC的编程通讯接口,内部固化的通讯协议为PPI 协议,如果上位机遵循PPI协议来读写PLC,就可以省略编写PLC的通讯代码。
如何获得PPI协议?可以在PLC的编程软件读写PLC数据时,利用第三个串口侦听PLC的通讯数据,或者利用软件方法,截取已经打开且正在通讯的端口的数据,然后归纳总结,解析出PPI协议的数据读写报文。
这样,上位机遵循PPI协议,就可以便利的读写PLC内部的数据,实现上位机的人机操作功能。
软件设计系统中测控任务由SIEMENS S7-226PLC完成,PLC采用循环扫描方式工作,当定时时间到时,执行数据采集或PID控制任务,完成现场的信号控制。
计算机的监控软件采用VB编制,利用MSComm控件完成串口数据通讯,通讯遵循的协议为PPI协议。
PPI协议西门子的PPI(Point to Point)通讯协议采用主从式的通讯方式,一次读写操作的步骤包括:首先上位机发出读写命令,PLC作出接收正确的响应,上位机接到此响应则发出确认申请命令,PLC则完成正确的读写响应,回应给上位机数据。
基于Modbus_RTU通讯协议在西门子PLC S7—200的应用
基于Modbus_RTU通讯协议在西门子PLC S7—200的应用摘要Modbus_RTU协议是应用于工业控制器的一种通迅协议。
以西门子PLC S7-200为例,对在Modbus_RTU协议下PLC与上位机实现通信作了详细阐述。
关键词Modbus_RTU协议;PLC;通信0 引言随着科技的发展,工业控制的发展走向集中监控、集散控制。
工业控制器连网为工业管理提供了很大方便。
Modbus_RTU协议已成为主流的工业通讯标准之一。
通过此协议,可以完成上位机与PLC控制器之间的通信,实现更好的集中监控管理。
1 主站和从站通讯网络构成Modbus_RTU协议是主站和从站进行实时通讯的协议,本次以西门子S7-200 PLC控制器作为从站,主站为和利时DCS控制系统的操作员站,和利时DCS控制网络为Profibus DP协议,西门子S7-200为MODBUS协议485设备,中间用网桥进行Modbus_RTU协议和Profibus DP协议转换,网桥采用鼎时的PROIBUS@MODBUS总线桥,可以实现MODBUS协议设备接入PROFIBUS总线网络的异构网络需求,网线采用RS485通讯电缆。
通讯网络连线完成后,需要进行通讯网络参数的设定,S7-200 PLC控制器的Modbus RTU协议通讯参数可以利用从站指令库中MBUS_INIT和MBUS_SLA VE功能块设置,如下图。
主要参数设置:Mode设置为1,启动Modbus从站通信。
Address设置为3,确定MODBUS从站地址。
Baud根据实际距离(大约100米)设置为9600,确定波特率。
Parity设置为无校验。
MaxHold 设置为1000,确定V存储器中的字保持寄存器数目。
HoldStart设置为&VB0,确定保持寄存器区起始地址。
如果有多台PLC作为从站与DCS系统进行通讯,单个PLC的从站地址各不相同,MODBUS从站地址设置范围为1-32。
西门子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的转换,打车到市场上买个转换器(打车钱比设备钱还多,可见现场多么偏僻阿),听卖转换器的老板给我分析了一下每种的区别——不光是价格的区别,说实在的,当时非常惭愧,老板懂的比我多多了。
西门子S7-200自由口通讯知识
S7-200系列自由口通讯的实现及应用比较有用的资料,有S7-200 PLC的话,可以试试。
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提供了用于进行通讯协议定制的特殊标志位以及相关的通讯指令。
2.1 特殊标志字节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主站模式2.2 接收信息的状态字节s7-200在自由口通讯时用于接受信息的状态有smb86和smb186,smb86用于s7-200的端口0的通讯,smb186用于s7-200的端口1的通讯,两者的格式一样,下面我们以s mb186为例,介绍其组成。
西门子PLC之间的通讯
西门子PLC之间的通讯是怎么完成的S7-200通信最经济的方式就是采用PPI协议和自由口通信协议。
对于S7-200之间进行通信,PPI协议又更适合——它比自由口通信的编程更简单!下面就对这个PPI通信进行说明——以2台S7-200通信为例,做一个实例。
设备配置:1台S7-200 CPU 226CN的PLC、 1台S7-200 CPU 224XP的PLC硬件连接:原则上需要配备1条紫色的Profibus电缆、2个黑色的Profibus-DP接头。
如果需要在PLC通信时对所有在线的PLC进行监控/编程操作而不占用另外的通信口(也就是说,假如所有PLC用端口PROT1进行PPI通信,而现在要对所有PLC依次编程/监控,但又不想占用这些PLC的端口PROT0——端口PROT0可能已作它用),那么必须在其中1台PLC采用带编程口的Profibus-DP接头。
所以说,带编程口的Profibus-DP接头在整个网络中只需要一个就可以了。
这样,也就可以在某一台PLC处对在网的其它PLC进行编程/监控。
引脚分配:........S7--200 CPU上的通讯端口是符合欧洲标准EN 50170中PROFIBUS 标准的RS--485兼容9针D型连接器。
下表列出了为通讯端口提供物理连接的连接器,并描述了通讯端口的针脚分配。
下面是S7-200的通信接口——D型9孔母头的引脚定义。
网络电缆的偏压电阻和终端电阻为了能够把多个设备很容易地连接到网络中,西门子公司提供两种网络连接器:一种标准网络连接器(引脚分配如表7-7所示)和一种带编程接口的连接器,后者允许您在不影响现有网络连接的情况下,再连接一个编程站或者一个HMI 设备到网络中。
带编程接口的连接器将S7--200的所有信号(包括电源引脚)传到编程接口。
这种连接器对于那些从S7--200取电源的设备(例如TD200)尤为有用。
两种连接器都有两组螺钉连接端子,可以用来连接输入连接电缆和输出连接电缆。
西门子PLC串行通讯方式有几种
西门子PLC串行通讯方式有几种?西门子PLC串行通讯方式有:RS485串口通信、PPI通信、MPI通信、PROFIBUS-DP通信、以太网通信一、PPI通讯PPI协议是S7-200CPU最基本的通信方式,通过原来自身的端口(PORT0或PORT1)就可以实现通信,是S7-200 CPU默认的通信方式。
PPI是一种主-从协议通信,主-从站在一个令牌环网中。
在CPU内用户网络读写指令即可,也就是说网络读写指令是运行在PPI协议上的。
因此PPI只在主站侧编写程序就可以了,从站的网络读写指令没有什么意义。
二、RS485串口通讯第三方设备大部分支持,西门子S7 PLC可以通过选择自由口通信模式控制串口通信。
最简单的情况是只用发送指令(XMT)向打印机或者变频器等第三方设备发送信息。
不管任何情况,都必须通过S7 PLC编写程序实现。
当选择了自由口模式,用户可以通过发送指令(XMT)、接收指令(RCV)、发送中断、接收中断来控制通信口的操作。
三、MPI通讯MPI通信是一种比较简单的通信方式,MPI网络通信的速率是19.2Kbit/s~12Mbit/s,MPI 网络最多支持连接32个节点,最大通信距离为50M。
通信距离远,还可以通过中继器扩展通信距离,但中继器也占用节点。
MPI网络节点通常可以挂S7-200、人机介面、编程设备、智能型ET200S及RS485中继器等网络元器件。
西门子PLC与PLC之间的MPI通信一般有3种通信方式:1、全局数据包通信方式2、无组态连接通信方式3、组态连接通信方式四、以太网通讯以太网的核心思想是使用共享的公共传输通道,这个思想早在1968年来源于厦威尔大学。
1972年,Metcalfe和David Boggs(两个都是著名网络专家)设置了一套网络,这套网络把不同的ALTO计算机连接在一起,同时还连接了EARS激光打印机。
这就是世界上第一个个人计算机局域网,这个网络在1973年5月22日首次运行。
西门子S7-200--MODBUS通信协议和支持MODBUS-RTU协议的电磁流量计、超声波流量计的通信实例
西门子S7_200 MODBUS通信协议和支持MODBUS RTU协议的电磁流量计、超声波流量计的通信实例S7_200系列PLC有一个通信口的也有两个通信口的,这两个口都支持MODBUS通信协议,不过要添加MODBUS库文件(SP6版本的step7 micro/win 软件自带有MODBUS库文件)。
下面根据具体的项目来说明MODBUS的使用:在项目中要采集进水流量的瞬时流量、日累计、月累计、年累计量,流量计本身有4~20mA信号输出和脉冲信号输出,这些输出信号都是瞬时量,只能转换为瞬时流量,而累积量就要通过编写程序来累加,而且信号的传输衰减和计算过程产生的误差就会造成和实际的流量相差很多,现在很多的流量计(包括其他的测量设备)都设计有通讯口,尤其是支持MODBUS协议,所以首选通信方式采集数据,这样可以直接读取我们想要的数据,只需做稍微的数据转换就可以的,同时也减小了工作量提高准确性(实际是按照流量收取费用的)。
实际的硬件连接:10套s7-200组成PPI网络(其中一个200站做主站),有一个从站要采集两个不同厂家的流量计的相关信息。
PPI网络层已经用去了一个端口0,还剩下一个端口1,那么就用这个端口并设置为自由口协议,在程序中调用MODBUS程序块并填写好必要的信息就可以了(其实调用MODBUS程序块时,程序块内就已经设置好端口为自由口协议了)。
图1.MODBUS库文件图2.控制指令图3.控制指令这里MBUS_CTRL_P1指令要一直调用,有一点要指明:图2中的程序是读取其中一台流量计的,图3是读取另一台流量计的,这两个流量计是不一样的。
这里最重要的是MBUS_MSG_P1指令中地址“Addr”的填写,其实这里要填写Modbus从站的寄存器地址(该地址内有我们需要的信息),那么这个地址要怎么填写呢,填写多少呢?这就要查看从站设备(这里是流量计)的“通信手册”了,因为每个厂家的设备都不一样,所以相同信息的寄存器地址也不一样。
vb与plc通讯(以西门子S7-200为例)
vb与plc通讯(以西门子S7-200为例)S7-200 PLC之PPI协议通过硬件和软件侦听的方法,分析PLC内部固有的PPI通讯协议,然后上位机采用VB编程,遵循PPI通讯协议,读写PLC数据,实现人机操作任务。
这种通讯方法,与一般的自由通讯协议相比,省略了PLC的通讯程序编写,只需编写上位机的通讯程序资源S7-226的编程口物理层为RS-485结构,SIEMENS提供MicroWin软件,采用的是PPI(Point to Point)协议,可以用来传输、调试PLC程序。
在现场应用中,当需要PLC与上位机通讯时,较多的使用自定义协议与上位机通讯。
在这种通讯方式中,需要编程者首先定义自己的自由通讯格式,在PLC中编写代码,利用中断方式控制通讯端口的数据收发。
采用这种方式,PLC 编程调试较为烦琐,占用PLC的软件中断和代码资源,而且当PLC的通讯口定义为自由通讯口时,PLC的编程软件无法对PLC进行监控,给PLC程序调试带来不便。
SIEMENSS7-200PLC的编程通讯接口,内部固化的通讯协议为PPI协议,如果上位机遵循PPI协议来读写PLC,就可以省略编写PLC的通讯代码。
如何获得PPI协议?可以在PLC的编程软件读写PLC数据时,利用第三个串口侦听PLC的通讯数据,或者利用软件方法,截取已经打开且正在通讯的端口的数据,然后归纳总结,解析出PPI协议的数据读写报文。
这样,上位机遵循PPI协议,就可以便利的读写PLC内部的数据,实现上位机的人机操作功能。
软件设计系统中测控任务由SIEMENSS7-226PLC完成,PLC采用循环扫描方式工作,当定时时间到时,执行数据采集或PID控制任务,完成现场的信号控制。
计算机的监控软件采用VB编制,利用MSComm控件完成串口数据通讯,通讯遵循的协议为PPI协议。
PPI协议西门子的PPI(Point to Point)通讯协议采用主从式的通讯方式,一次读写操作的步骤包括:首先上位机发出读写命令,PLC作出接收正确的响应,上位机接到此响应则发出确认申请命令,PLC则完成正确的读写响应,回应给上位机数据。
西门子S7-200自由口协议
西门子S7-200自由口协议关于自由口通讯协议此协议为亚控公司为实现组态王与德国西门子公司SIMATIC S7-200系列PLC之间的通讯而制定的串行通讯协议,采用主从的问答方式,上位机为主呼方,下位机为应答方。
协议格式如下,最后一字节为校验字节,校验字节为前面所有字节的按位异或值。
上位机从PLC中读数据:上位机发送读指令:BYTE1: PLC地址 (1~255)BYTE2: 0x00 (读指令代码)BYTE3: 寄存器类型(0-V, 1-Q, 2-I)BYTE4-5: 起始偏移地址(0-9999)BYTE6: 数据个数(1~32 n)BYTE7: 数据类型(1,2,4 m)BYTE8-11: 保留BYTE12: 校验字节PLC应答:读成功时:BYTE1: PLC地址 (1~255)BYTE2: 0x00 (读指令代码)BYTE3: 寄存器类型(0-V, 1-Q, 2-I)BYTE4-5: 起始偏移地址(0-9999)BYTE6: 数据个数(1~32 n)BYTE7: 数据类型(1,2,4 m)BYTE8-n*m+8: 数据BYTEn*m+9: 校验字节读失败时:BYTE1: PLC地址 (1~255)BYTE2: 0x80 (读指令失败代码)BYTE3: 寄存器类型(0-V, 1-Q, 2-I)BYTE4-5: 起始偏移地址(0-9999)BYTE6: 数据个数(1~32 n)BYTE7: 数据类型(1,2,4 m)BYTE8: 0x01(校验错代码)BYTE9-11: 保留BYTE12: 校验字节上位机向PLC中写入数据:上位机发送写指令:BYTE1: PLC地址 (1~255)BYTE2: 0x01 (写指令代码)BYTE3: 寄存器类型(0-V, 1-Q, 2-I)BYTE4-5: 起始偏移地址(0-9999)BYTE6: 数据个数(1 n)BYTE7: 数据类型(1,2,4 m)BYTE8-11: 写入数据BYTE12: 校验字节PLC应答:写成功时:BYTE1: PLC地址 (1~255)BYTE2: 0x01 (写指令代码)BYTE3: 寄存器类型(0-V, 1-Q, 2-I)BYTE4-5: 起始偏移地址(0-9999)BYTE6: 数据个数(1 n)BYTE7: 数据类型(1,2,4 m)BYTE8-11: 保留BYTE12: 校验字节写失败时:BYTE1: PLC地址 (1~255)BYTE2: 0x81 (写指令代码)BYTE3: 寄存器类型(0-V, 1-Q, 2-I)BYTE4-5: 起始偏移地址(0-9999)BYTE6: 数据个数(1 n)BYTE7: 数据类型(1,2,4 m)BYTE8: 0x01(校验错代码)BYTE9-11: 保留BYTE12: 校验字节由于采用自由口通信方式后,梯形图程序通过接收中断和发送中断以及发送指令(XMT)控制通信口的操作。
S7-200 Modbus RTU 通信
S7-200 Modbus RTU 通信关键字•S7-200 CPU 上的通信口0(Port 0)通过指令库支持Modbus RTU 从站模式•S7-200 CPU 上的通讯口0 和1 (Port 0 和Port 1)通过指令库支持Modbus RTU 主站模式在S7-200 CPU 通信口上实现的是RS485 半双工通信,使用的是S7-200 的自由口功能。
通过S7-200 CPU 通信口的自由口模式实现Modbus 通信协议,可以通过无线数据电台等慢速通信设备传输。
这为组成S7-200 之间的简单无线通信网络提供了便利。
详细情况请参考《S7-200系统手册》(2002 年10 月或以后版本)的相应章节。
常问问题1Modbus RTU主站1.1 Modbus RTU 主站指令库西门子在Micro/WIN V4.0 SP5 中正式推出Modbus RTU 主站协议库(西门子标准库指令)。
图 1. 西门子标准指令库(Micro/WIN V4.0 SP5)注意• 1. Modbus RTU 主站指令库的功能是通过在用户程序中调用预先编好的程序功能块实现的,该库对Port 0 和Port 1 有效。
该指令库将设置通信口工作在自由口模式下。
• 2. Modbus RTU 主站指令库使用了一些用户中断功能,编其他程序时不能在用户程序中禁止中断。
• 3. Modbus RTU 主站库对CPU的版本有要求。
CPU 的版本必须为2.00 或者2.01(即订货号为6ES721*-***23-0BA*),1.22版本之前(包括1.22版本)的S7-200 CPU 不支持。
使用Modbus RTU 主站指令库,可以读写Modbus RTU 从站的数字量、模拟量I/O 以及保持寄存器。
要使用Modbus RTU 主站指令库,须遵循下列步骤:• 1.安装西门子标准指令库• 2.按照要求编写用户程序调用Modubs RTU 主站指令库安装西门子标准指令库1.2 Modbus RTU 主站功能编程1. 调用Modbus RTU 主站初始化和控制子程序使用SM0.0 调用MBUS_CTRL 完成主站的初始化,并启动其功能控制:图 2. 用SM0.0 调用Modbus RTU 主站初始化与控制子程序各参数意义如下:a. EN 使能:必须保证每一扫描周期都被使能(使用SM0.0)b. Mode 模式:为1 时,使能Modbus 协议功能;为0 时恢复为系统PPI 协议c. Baud 波特率:支持的通讯波特率为1200,2400,4800,9600,19200,38400,57600,115200。
S7-200 MODBUS RTU通讯教程
•
10001 - 19999:数字量输入(触点)
•
30001 - 39999:输入数据寄存器(通常为模拟量输入)
•
40001 - 49999:数据保持寄存器
Modbus Master 协议库支持的功能
为了支持上述 Modbus 地址的读写,Modbus Master 协议库需要从站支持下列功能:
表 1. 需要从站支持的功能
成位来激活,以保证所有读写指令循环进行(见
每一个新的读写请求必须使用脉冲触发
位:
从站地
c. Slave
可选择的范围 1 - 247
址:
d. RW
从站地 0 = 读, 1 = 写
址:
注意: 1. 开关量输出和保持寄存器支持读和写功能 2. 开关量输入和模拟量输入只支持读功能
围为 1 - 32767。
注意: 这个值必须设置足够大以保证从站有时间响应。 f. Done 完成位:初始化完成,此位会自动置 1。可以用该位启动 MBUS_MSG 读写操作(见例程)
g. Error
初始化错误代码(只有在 Done 位为 1 时有效):
0= 无错误
1= 校验选择非法
读写从站
e. Addr
选择读写的数据类型
的
数据地 00001 至 0xxxx - 开关量输出
址:
10001 至 1xxxx - 开关量输入 30001 至 3xxxx - 模拟量输入 40001 至 4xxxx - 保持寄存器 f. Count 数据个数 通讯的数据个数(位或字的个数)
Modbus 指令库启动后,如何通过同一个通信端口进行 CPU 监控? Modbus 指令库使用的是 CPU 的自由口通信功能,工作在自由口模式下的通讯口不能使用 Micro/WIN 的 PPI 编程
西门子S7-200使用USS协议指令和变频器通信
使用 USS 协议指令和变频器通信本章描述能使 S7-200 控制 MicroMaster 变频器的标准 USS 协议指令STEP 7-Micro/WIN 32 软件工具包通过专为 USS 协议通信而设计的预配置子程序和中断程序这些程序在STEP 7-Micro/WIN 指令树的库文件夹中作为指令出现的当你选择 USS 协议指令时而不需编程者的参与11.1 USS 协议指令的要求USS 协议指令需要能提供以下资源的 CPU端口 0: 当端口 0 用于 USS 协议通信时包括与 STEP 7-lMicro/WIN 的通信一旦端口 0分配给 USS 使用或将MODE开关置于在 STOPÍ£Ö¹Óë±äƵÆ÷µÄͨÐŻᵼÖ±äƵÆ÷Í£Ö¹¹¤×÷¿ª·¢ÕßÓ¦ÓÃÒ»¸öCPU 226 或EM 277 PROFIBUS –DP与 PC 中的一个 PROFIBUS CP 卡一起使用这样做能提供第二个通信端口在端口0上都会受USS协议指令的影响l除了被每个指令占用的空间外V存储器l一个从用户分配的存储单元开始的16字节通信建议为USS协议指令的每个实例分配一个唯一的缓冲区全局符号表配置当为第一个符号输入一个地址后图11-1表示符号表的USS标记起始的V区地址图11-1 符号表配置变频器通信时间与变频器的通信完成一个变频器通信事务通常需要几次 CPU 扫描波特率表11-1表示通信处理时间CPU有规律地按表11-1中的时间间隔轮询所有有效的变频器表11-1 变频器能信时间波特率轮询有效变频器的间隔时间 1200 *变频器数2400 *变频器数4800 *变频器数9600 *变频器数19200 *变频器数约束一次只能启动一个READ_PM或WRITE_PM指令每个指令的Done输出应发出输出完成的信号11.2 编程顺序使用 USS 协议指令的编程顺序如下只能通过一次扫描调用USS_INIT以启动或改变 USS 通信参数见11-4页所有其它地址都是自动地分配的选择图11-1中的USS标签即可看到相关的符号表可以任意添加 READ_PM 和 WRITE_PM 指令4. 配置变频器参数参阅 11.5 节中的非常重要的是均需用一根短注意有不同参数电位的设备互连会在互连电缆中流通不希望有的电流要确实保证或是共用一个公共电路参考点以防止不希望有的电流流通用隔离电路的接地和电路参考点屏蔽线必须连接到机箱接地点或9针连接器的插针 1注如不能读出 USS 指令块上的所有变量然后增加栏的宽度即可11.3 USS 协议指令USS_INITUSS_INIT 指令用于允许和初始化或禁止 MicroMaster 变频器通信必须先执行 USS_INIT 指令且没有错误返回完成位立即置位当 EN 输入为接通时每一次要改变通信状态因此一旦 USS 协议已启动必须通过执行一个新的 USS_INIT 指令以禁止 USS 协议1 将端口 0 分配给 USS 协议和允许该协议BAUD 设定波特率在 12004800或 19200ÓÐЩ±äƵÆ÷Ö»Ö§³ÖµØÖ· 0 至 30±ê¼ÇΪ ACTIVE 的任何变频器都是自动地在后台进行轮询控制的并防止变频器的串行链路超时计算状态轮询之间的时间参数11.5节D r i v e 0 激活位驱动器未激活驱动器激活D r i v e 1 激活位 驱动器未激活 驱动器激活图 11-2 激活变频器的描述和格式当 USS_INIT 指令完成时ERR 输出字节包含指令执行的结果表11-2 表示 USS 子程序的操作数和数据类型D0 Drive 0 激活位 驱动器未激活 驱动器激活D1 Drive 1 激活位 驱动器未激活 驱动器激活图 11-3 表示如何使用 LAD图 11-3 在 USS_INIT 子程序中使用 LADDRV_CTRLDRV_CRTL 指令用于控制 ACTIVE MicroMaster 变频器缓冲区中的命令发送到编址的变频器每个变频器只应有一个 DRV_ CTRL 指令以启动 DRV_CRTL 指令这个指令总是在允许状态RUN/STOP10当RUN位是接通时以便开始以规定的速度和方向运动必须具备以下条件OFF1 和 OFF2必须设定为 0lÔò·¢ËÍ MicroMaster 变频器一个命令OFF2 位用来使 MicroMaster 变频器减速到停止F_ACKλÓÃÀ´È·ÈÏÒ»¸ö¹ÊÕϱäƵÆ÷Çå³ý¹ÊÕÏ方向0-逆时针方向变频器地址有效地址为 0 至 31SPD_SPÊÇÈ«ËٶȰٷÖÖµµÄ±äƵËÙ¶È注每台变频器只能分配一个 DRV_CTR 指令对所有激活的变频器轮询最新的变频状态信息RSP_R 位接通进行一次扫描ERR 是一个错误状态字节11-16 页上的表 11-6定义指令执行中可能会出现的错误图11-4表示标准状态字和主反馈的状态位-200.0% 至 200.0%注有些变频器只报告正值的速度变频器仍报告正值的速度方向RUN_EN ָʾ±äƵÆ÷ÕýÔÚÔËÐÐ或已停止0-逆时针方向0-不禁止FAULT 位必须断开OFF2 FAULT 指示故障位的状态1-故障变频器显示故障代码参阅变频器使用手册要清除 FAULT 位并接通 F_ACK 位准备好启动 准备好运行 允许运行 存在驱动器故障 当前是滑行停止命令 当前是快速停止命令 禁止接通有驱动器的警告信息 没有使用1允许串联运行锁定串联运行一只能本地操作 频率已达到 频率没有达到 变频器输出是顺时钟 变频器输出是逆时钟留作将来之用这个位不一定总是为留作将来之用这个位不一定总是为留作将来之用这个位不一定总是为低字节高字节图 11-4 标准状态字和主要反馈的状态位表 11-3 DRV_CTRL 子程序的操作数和数据类型输入/输出操作数数据类型RUN I, Q, M, S, SM, T, C, V, L, 功率流布尔数OFF2 I, Q, M, S, SM, T, C, V, L, 功率流布尔数OFF3 I, Q, M, S, SM, T, C, V, L, 功率流布尔数F_ACK I, Q, M, S, SM, T, C, V, L, 功率流布尔数DIR I, Q, M, S, SM, T, C, V, L, 功率流布尔数DRIVE VB, IB, QB, MB, SB, SMB, LB, AC, 常数, *VD, *AC, *LD 字节SPD_SP VD, ID, QD, MD, SD, SMD, LD, AC, *VD, *AC, *LD, 常数实数RSP_R I, Q, M, S, SM, T, C, V, L 布尔数ERR VB, IB, QB, MB, SB, SMB, LB, AC, *VD, *AC, *LD 字节STATUS VW, T, C, IW, QW, SW, MW, SMW, LW, AC, AQW, *VD, *AC, *LD 字SPEED VD, ID, QD, MD, SD, SMD, LD, AC, *VD, *AC, *LD 实数RUN_EN I, Q, M, S, SM, T, C, V, L 布尔数DIR_CW I, Q, M, S, SM, T, C, V, L 布尔数INHIBIT I, Q, M, S, SM, T, C, V, L 布尔数FAULT I, Q, M, S, SM, T, C, V, L 布尔数图 11-5 说明如何使用 LAD网络2 变频器 0 的控制块图 11-5 在 DRV_CTRL 子程序中使用LADREAD_PMREAD_PM 指令读取变频器参数则完成READ_PM 指令的处理逻辑扫描仍继续进行这个位应保持接通一直到 DONE 位被置位才标志着整个处理结束每一次扫描READ_PM发送请求到变频器XMT_REQ的输入端必须与脉冲边缘检测语句相联接都会向变频器发出请求DRIVE input READ_PM命令将被发送到这个地址PARM 是参数号必须将 16 字节缓冲区的地址提供给 DB_PTR输入READ_PM 指令完成时第11-16 页上的表 11-6定义在执行指令时有可能出现的错误类型注在同一时间内表 11-4 READ_PM 子指令的操作数和数据类型表 11-4 READ_PM 子程序中的操作数和数据类型输入/输出操作数数据类型XMT_REQ I, Q, M, S, SM, T, C, V, L, 通过上升沿跳变检测指令触发布尔数DRIVE VB, IB, QB, MB, SB, SMB, LB, AC, 常数, *VD, *AC, *LD 字节PARM VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, 常数, AC *VD, *AC,字*LDDB_PTR &VB 双字DONE I, Q, M, S, SM, T, C, V, L 布尔数表 11-14 用于 READ_PM 子程序的操作数和数据类型输入/输出操作数数据类型ERR VB, IB, QB, MB, SB, SMB, LB, AC. *VD, *AC, *LD 字节VAL VW, T, C, IW, QW, SW, MW, SMW, LW, AC, AQW, *VD, *AC, *LD 字图 11-6 说明如何使用 LAD图 11-6 在 READ_PM 子程序中使用 LAD 这两个触点必须是同一个触点这两个触点必须是同一个触点这两个触点必须是同一个触点WRITE_PMWRITE_PM 指令将变频器参数写入到指定的位置则完成WRITE_PM指令处理逻辑扫描仍继续进行这个位应保持接通一直到DONE 位被设置表明已完成了处理每一次扫描因此使得EN输入端每次上升沿到来时变频器输入是MicroMaster变频器的地址每个变频器的有效地址为 0 到 31VAL 是要写入的参数值WRITE_PM 指令使用这个缓冲区以存储向变频器所发出命令的结果DONE 输出接通和 ERR 的输出字节包含有执行这个指令的结果注在一个时间内注意当使用 WRITE_PM 指令来更新保持在变频器 EEPROM 中的参数集时约为 50,000次读周期的数量没有限制则首先必须设置 P971Ϊ 0图 11-7 说明如何使用 LAD图 11-7 在WRITE_PM 子程序中使用 LAD 这两个触点必须是同一个触点这两个触点必须是同一个触点这两个触点必须是同一个触点表 11-6 在 USS 指令中出现的执行错误出错号说明0 没有出错1 变频器不能响应2 检测到变频器响应中包含加和校验错误3 检测到变频器响应中包含奇偶校验错误4 由用户程序干扰引起的错误5 企图执行非法命令6 提供非法的变频器地址7 没有为 USS 协议设置通信口8 通信口正忙于处理指令9 输入的变频器速率超出范围10 变频器响应的长度不正确11 变频器响应的第一个字符不正确12 变频器响应的长度字符不正确13 变频器错误响应14 提供的 DB_PTR 地址不正确15 提供的参数号不正确16 所选择的协议无效17 USS 激活变频器没有激活20 在变频器中响应中的参数或数值有误11.4 变频器连接可用标准的 PROFIBUS 电缆和连接器将 CPU 连接到 MicroMaster 变频器网络连接器互连电缆正确的偏置和终接 注意把具有不同电位参考点的设备互连会在互连电缆中产生不应有的电流要确实保证通信电缆连接的所有设备或是相互隔离的见 2.3 节中的建议将 MicroMaster 变频器上的端子 2-0V连接到机箱接地点开关位置=O n 有终端和偏置开关位置=O ff 无终端和偏置开关位置=O n 有终端和偏置开关位置=O n 有终端和偏置开关位置=O ff 没有终端和偏置电缆屏蔽层电缆屏蔽层插针号插针号网络连接器网络连接器互连电缆电缆屏蔽层网络连接器有编程端口的网络连接器电缆的两个末端必须有终端匹配和偏置裸屏蔽层所有位置必须连接金属导槽11.5 变频器的设置将变频器连接到 PLC 之前变频器已有以下的系统参数按以下步骤设定变频器参数可选的按 P 键按向上或向下箭头键按 P 键P944=12. 允许读/写所有参数按向上或向下箭头键按 P键P009=33. 检查变频器的电动机设定值按 P 键直到显示器显示电动机的设定值为止输入参数HzRPMAVKW/HP°´ P 键直到显示器显示 P910ÊäÈë²ÎÊý°´ P 键直到显示出P092ÊäÈë²ÎÊýÖ±µ½ÏÔʾÆ÷ÏÔʾ³öÓëÄãµÄ RS-485 串行接口相对应的波特率数字为止输入参数1200波特2400波特4800波特9600波特缺省值19200波特每个变频器可经过总线运行按向上或向下箭头键按 P 键按向上或向下箭头键按 P 键输入可选的这是以秒表示的电动机加速到最大频率所需的时间按向上或向下箭头键按 P 键按向上或向下箭头键直到显示器出现所需要的增速时间为止输入参数8. 斜坡减速时间按 P键直到出现 P003 为止输入参数按 P 键输入这是二个输入数据报文之间的最大允许时间间隔收到了有效的数据报文后如果在规定的时间间隔内没有收到其它的数据报文将值设定为0±äƵÆ÷½øÐбí11-1 计算״̬ÂÖѯ֮¼äµÄʱ¼ä¿ÉÓÃ按向上或向下箭头键按 P 键输入参数按 P 键输入0是缺省值10. 串行链路额定系统设定点但是典型情况是相当于50Hz或60Hz°´ P 键直到出现P094 为止按向上或向下箭头键直到显示器出现所需要的串行链路额定系统设定点为止可选的按P键直到出现 P 095°´ÏòÉÏ»òÏòÉϼýÍ·¼üÖ±µ½ÏÔʾÆ÷³öÏÖËùÐèÒªµÄ°´ P 键输入缺省值任选按 P 键直到出现 P 971°´ÏòÉÏ»òÏòϼýÍ·¼üÖ±µ½ÏÔʾÆ÷³öÏÖËùÐèÒªµÄ°´ P 键输入丢失更改的参数设定值 1 断电期间仍保持更改的参数设定值13. 运行显示退出参数方式 PUSS 协议程序的实例图 11- 9 至 11-11 表示使用 LAD STL语言的 USS 程序的实例网络1 初始化 USS 协议网络2 变频器 0 的控制框网络3 从变频器 0 读取一个参数这二个触点必须是相同的网络1 初始化 USS 协议网络2 用于驱动器 0 的控制框这两个触点必须是同一个触点网络3 从驱动器 0 读取一个参数图 11-10 使用 SIMATIC FBD 语言的 USS 指令举例网络2网络1网络3初始化U S S协议第一个扫描周期使能端口0的U S S协议激活0号站地址的驱动器从驱动器0读取一个参数保存I0.1的状态给临时的L寄存器保存I0.2的上升沿状态给临时的L寄存器这两个触点必须是同一个触点图 11-11 使用 SIMATIC STL 语言的 USS 指令举例。
s7 200 485通讯配置
S7-200 Modbus RTU 通信简介Modbus 是公开通信协议,具有两种串行传输模式,ASCII 和RTU。
详细的协议和规范,请访问Modbus 组织的网站:/S7-200 通过以下方式支持Modbus RTU 通信协议:•S7-200 CPU 上的通信口0(Port 0)通过指令库支持Modbus RTU 从站模式•S7-200 CPU 上的通讯口0 和1 (Port 0 和Port 1)通过指令库支持Modbus RTU 主站模式在S7-200 CPU 通信口上实现的是RS485 半双工通信,使用的是S7-200 的自由口功能。
通过S7-200 CPU 通信口的自由口模式实现Modbus 通信协议,可以通过无线数据电台等慢速通信设备传输。
这为组成S7-200 之间的简单无线通信网络提供了便利。
详细情况请参考《S7-200系统手册》(2002 年10 月或以后版本)的相应章节。
常问问题1Modbus RTU主站1.1 Modbus RTU 主站指令库西门子在Micro/WIN V4.0 SP5 中正式推出Modbus RTU 主站协议库(西门子标准库指令)。
图 1. 西门子标准指令库(Micro/WIN V4.0 SP5)注意• 1. Modbus RTU 主站指令库的功能是通过在用户程序中调用预先编好的程序功能块实现的,该库对Port0 和Port 1 有效。
该指令库将设置通信口工作在自由口模式下。
• 2. Modbus RTU 主站指令库使用了一些用户中断功能,编其他程序时不能在用户程序中禁止中断。
• 3. Modbus RTU 主站库对CPU的版本有要求。
CPU 的版本必须为2.00 或者2.01(即订货号为6ES721*-***23-0BA*),1.22版本之前(包括1.22版本)的S7-200 CPU 不支持。
使用Modbus RTU 主站指令库,可以读写Modbus RTU 从站的数字量、模拟量I/O 以及保持寄存器。