S7200 SMART 自由口通信实例解读分析
Get清风S7200PLC与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-200SMARTMODBUS通信介绍与实例编程
【案例】S7-200SMARTMODBUS通信介绍与实例编程一. 西门子S7-200 SMART作为modbus从站1.检查Micro/WIN SMART Modbus RTU从站指令库(图1),库中应当包括MBUS_INIT和MBUS_SLAVE两个子程序。
2.编程时使用SM0.1调用子程序MBUS_INIT进行初始化,使用SM0.0调用MBUS_SLAVE,并指定相应参数。
关于参数的详细说明,可在子程序的局部变量表中找到;调用Modbus RTU通信指令库图中参数意义如下:a.模式选择:启动/停止Modbus,1=启动;0=停止b.从站地址:Modbus从站地址,取值1~247c.波特率:可选1200,2400,4800,9600,19200,38400,57600,115200d.奇偶校验:0=无校验;1=奇校验;2=偶校验e.端口:0=CPU中集成的 RS-485,1=可选信号板上的RS-485 或RS-232。
f.延时:附加字符间延时,缺省值为0g.最大I/Q位:参与通信的最大I/O点数,S7-200 SMART 的I/O 映像区为256/256(目前只能最多连接4个扩展模块,因此目前最多I/O点数为188/188)h.最大AI字数:参与通信的最大AI通道数,最多56个i.最大保持寄存器区:参与通信的V存储区字(VW)j.保持寄存器区起始地址:以&VBx指定(间接寻址方式)k.初始化完成标志:成功初始化后置1l.初始化错误代码m.Modbus执行:通信中时置1,无 Modbus 通信活动时为 0。
n.错误代码:0=无错误3.在CPU的V数据区中分配库指令数据区(Library Memory)Modbus Slave 指令库需要一个781个字节的全局V 存储区。
调用STEP 7 - Mciro/WIN SMART Instruction Library(指令库)需要分配库指令数据区(Library Memory)。
S7200自由口模式下PLC与计算机的通信
S7200自由口模式下PLC与计算机的通信明如何以自由协议实现计算机与S7-200的通信,计算机作为主站,可以实现对PLC从站各寄存器的读/写操作。
机通过COM口发送指令到PLC的PORT0(或PORT1)口,PLC通过RCV接收指令,然后对指令进行译码,译码后调用相应的读/写子程序实现指令要求的操作,并返回指令执行的状态信息。
通信协议由口模式下,通信协议是由用户定义的。
用户可以用梯形图程序调用接收中断、发送中断、发送指令(XMT)、接受指令(RCV)来控制通信操作。
在自由口模式下,通信协议完全由梯形图程序控制。
指令格式定义计算机每次发送一个33字节长的指令来实现一次读/写操作,指令格式见表1 说明:起始字符----起始字符标志着指令的开始,在本例中被定义为ASCII码的"g",不同的PLC从站可以定义不同的起始字符以接收真对该PLC的指令。
指令类型----该字节用来标志指令的类型,在本例中05H代表读操作,06H代表写操作。
目标PLC站地址----目标PLC站地址占用指令的B2、B3两个字节,以十六进制ASCII码的格式表示目标PL C的站地址。
目标寄存器地址----在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)读/写字节数M----当读命令时,始终读回从目标寄存器开始的连续8个字节的数据(转换为十六进制ASCII 码后占用16个字节),可以根据自己的需要取用,M可以任意写入。
----当写命令时,M表示的是要写入数据的十六进制ASCII码所占用的字节数。
例如要写入1个字节的数据,数据在指令中以十六进制ASCII码表示,它将占用2个字节,此时应向M中写入"02"。
【电气工控自动化】S7-200 SMART与V20变频器进行自由口通信
S7-200 SMART与V20变频器进行自由口通信学习S7-200 SMART时了解到,基于RS485接口可实现一下几种通信:1)modbus RTU通信2)PPI协议通信3)USS协议通信4)自由口通信何为自由口通信呢?前三种通信必须要PLC和与其通信的设备支持相同的通信协议,如果两者之间没有共同的通信协议则需要用到自由口通信。
自由口通信也称无协议通信,需要根据对方设备的通信数据格式编写一个临时协议,不仅需要编程人员学会如何编写程序,还需要了解对方的通信数据格式,所以对编程人员要求较高,随着标准协议(modbus,USS等)普及,自由口应用越来越少,但是对于一下小的设备如扫码枪等,并没有集成标准通信协议,所以只能选用自由口通信,Moubus和USS其实是自由口的一个特例。
很多人碰到自由口通信就手足无措了,其实只要掌握规律,自由口通信不一定很难。
为此我总结了自由口通信的基本步骤:1)读懂对方的数据格式。
串行通信中,数据是一位一位的进行发送,也就是0和1。
为了能够准确的将数据发送过去,往往会加上1个起始位,1个校验位,1个停止位(无校验是为2个停止位)如图1-1所示。
图1-1我们就以Modbus RTU为例详细看一下串口通信中数据是如何发送和就收的。
Modbus RTU代码系统如下:·1个起始位。
·7或8个数据位,最小的有效位先发送。
·1个奇偶校验位,设成无校验则没有。
·1个停止位(有校验时),2个Bit(无校验时)。
数据格式的描述如下表:11-bit字符帧(BITl-BIT8为数据位):起始位Bit1Bit2Bit3Bit4Bit5Bit6Bit7Bit8校验位停止位10-bit字符帧(BITl-BIT7为数据位):起始位Bit1Bit2Bit3Bit4Bit5Bit6Bit7校验位停止位通信中要保证通信双方要有相同的波特率,数据格式,奇偶校验位。
波特率:通信速度,每秒中发送的位的个数,单位为Bit/S或bps。
s7200自由口通信
自由口通信S7-200 CPU的通信口可以设置为自由口模式。
选择自由口模式后,用户程序就可以完全控制通信端口的操作,通信协议也完全受用户程序控制。
S7-200 CPU上的通信口在电气上是标准的RS-485半双工串行通信口。
此串行字符通信的格式可以包括:∙一个起始位∙7或8位字符(数据字节)∙一个奇/偶校验位,或者没有校验位∙一个停止位自由口通信速波特率可以设置为1200、2400、4800、9600、19200、38400、57600或112500。
凡是符合这些格式的串行通信设备,理论上都可以和S7-200 CPU通信。
自由口模式可以灵活应用。
Micro/WIN的两个指令库(USS和Modbus RTU)就是使用自由口模式编程实现的。
在进行自由口通信程序调试时,可以使用PC/PPI电缆(设置到自由口通信模式)连接PC和CPU,在PC上运行串口调试软件(或者Windows的Hyper Terminal-超级终端)调试自由口程序。
USB/PPI电缆和CP卡不支持自由口调试。
自由口通信要点应用自由口通信首先要把通信口定义为自由口模式,同时设置相应的通信波特率和上述通信格式。
用户程序通过特殊存储器SMB30(对端口0)、SMB130(对端口1)控制通信口的工作模式。
CPU通信口工作在自由口模式时,通信口就不支持其他通信协议(比如PPI),此通信口不能再与编程软件Micro/WIN通信。
CPU停止时,自由口不能工作,Micro/WIN就可以与CPU 通信。
通信口的工作模式,是可以在运行过程中由用户程序重复定义的。
如果调试时需要在自由口模式与PPI模式之间切换,可以使用SM0.7的状态决定通信口的模式;而SM0.7的状态反映的是CPU运行状态开关的位置(在RUN时SM0.7="1",在STOP 时SM0.7="0")自由口通信的核心指令是发送(XMT)和接收(RCV)指令。
S7200自由口通信课件
设置说明
• 工作模式定义
• XMT 指令
• RCV 指令
9
S7-200
Hardware Software Workshop
XMT 指令
• 自由口通信模式主要使用 XMT (发送)和 RCV (接收)两条指令, 以及相应的特殊寄存器。
• XMT 指令利用数据缓冲区指定要发送的字符,用于向指定通信口以字 节为单位发送一串数据字符,一次最多发送255个字节。
– 调制解调器
打印机
调制解调器
SIEMENS
SIMATIC S7-200
SF
I0.0
I1.0
Q0.0
Q1.0
RUN
I0.1
I1.1
Q0.1
Q1.1
STOP I0.2
I1.2
Q0.2
I0.3
I1.3
Q0.3
I0.4
I1.4
Q0.4
I0.5
I1.5
Q0.5
I0.6
Q0.6
I0.7
Q0.7
CPU 214
第三方PLC
• 2 硬件需求
• 与“自由口发送”相同。
• 3 简要实现步骤
• (1)编写S7-200 PLC程序。
• (2)下载程序到S7-200 PLC中。
• (3)配置计算机的超级终端。
• (4)使用计算机上超级终端发送信息,并通过状态表查看S7-200
CPU接收到的通信内容。
33
S7-200
Hardware Software Workshop
• (3)S7-200 CPU 通信端口是 RS485 标准,因此如果通信对象是 RS232 设备,则需要使用 RS232/PPI 电缆。
S7200自由通信口
1.自由端口通信模式S7-200系列PLC的串行通信口可以由用户程序来控制,这种由用户程序控制的通信方式称为自由端口通信模式。
利用自由口模式,可以实现用户定义的通信协议,可以同多种智能设备进行通信。
当选择自由端口通信模式时,用户程序可通过发送/接收中断、发送/接收指令来控制串行通信口的操作。
通讯所使用的波特率、奇偶校验以及数据位数等由特殊存储器位SMB30(对应端口0)和SMBl30(对应端口1)来设定。
特殊存储器位SMB30和SMB130的具体内容如表8-1所示。
1.自由端口通信模式在对SMB30赋值之后,通信模式就被确定。
要发送数据则使用XMT指令;要接收数据则可在相应的中断程序中直接从特殊存储区中的SMB2(自由口通信模式的接收寄存)读取。
若是采用有奇偶校验的自由口通信模式,还需在接收数据之前检查特殊存储区中的SMB3.0(自由口通信模式奇偶校验错误标志位,置位时表示出错)。
注意:只有PLC处于RUN模式时,才能进行自由端口通讯。
处于自由端口通讯模式时,不能与可编程设备通讯,比如编程器、计算机等。
若要修改PLC程序,则需将PLC处于STOP方式。
此时,所有的自由口通信被禁止,通信协议自动切换到PPI通信模式。
2. 自由口通信发送/接收指令(1)数据的发送XMT为发送指令操作码;他TABLE和PORT为上述指令的操作数。
TABLE指定数据缓冲区中第一个字节(设定应发送的字节数),;PORT指定通讯端口,可取0或1。
发送指令XMT把TABLE指定的数据缓冲区的内容通过PORT指定的串行口发送出去。
数据缓冲区内最多可容纳255个字符,其中缓冲区中第一个字节用于设定发送的字节数。
如果指定发送结束事件与某个中断服务程序相关联,则在缓冲区内最后一个字符发送后会产生中断。
通过监控发送结束标志SM4.5可以不用中断方式而将信息发送出去。
2. 自由口通信发送/接收指令RCV为接收指令操作码;TABLE和PORT为上述指令的操作数。
S7 200 SMART 通讯问题—以太网设置
一:TCP 协议通讯(一)S7 200 SMART之间的TCP通讯TCP是一个因特网核心协议。
在通过以太网通信的主机上运行的应用程序之间,TCP 提供了可靠、有序并能够进行错误校验的消息发送功能。
TCP 能保证接收和发送的所有字节内容和顺序完全相同。
TCP 协议在主动设备(发起连接的设备)和被动设备(接受连接的设备)之间创建连接。
一旦连接建立,任一方均可发起数据传送。
TCP协议是一种"流"协议。
这意味着消息中不存在结束标志。
所有接收到的消息均被认为是数据流的一部分。
S7 200 SMART与之间的TCP通讯可以通过两边调用OUC(开放式用户通讯)指令库中的TCP_CONNECT、TCP_SEND、TCP_RECV、DISCONNECT指令来实现。
图1.开放式用户通讯库开放式用户通信库需要使用 50 个字节的 V 存储器。
开放式的用户通讯连接资源包括8个主动连接和8个被动连接。
只可从主程序或中断例程中调用库函数,但不可同时从这两个程序中调用。
所需条件:1、软件版本:STEP 7-Micro/WIN SMART V2.22、SMART CPU固件版本:V2.23、通讯硬件:TP电缆(以太网电缆)所完成的通讯任务:将作为客户端的PLC(IP地址为192.168.0.101)中VB0-VB3的数据传送到作为服务器端的PLC(IP地址为192.168.0.102)的VB2000-VB2003中。
S7-200 SMART 客户端编程1、设置本机IP地址在客户端设置IP地址为192.168.0.101图2.设置IP地址2、建立TCP连接调用TCP_CONNECT指令建立TCP连接。
设置连接伙伴地址为192.168.0.102,远端端口为2001,本地端口为5000,连接标识ID为1。
利用SM0.0使能Active,设置为主动连接。
图3.调用TCP_CONNECT指令指令的参数输入参数:EN :使能输入Req:沿触发Active :TURE=主动连接(客户端)FALSE=被动连接(服务器)ConnID:连接ID为连接标识符,可能范围为0-65534。
S7200SMART通讯问题—以太网设置
一:TCP 协议通讯(一)S7 200 SMART之间的TCP通讯TCP是一个因特网核心协议。
在通过以太网通信的主机上运行的应用程序之间,TCP 提供了可靠、有序并能够进行错误校验的消息发送功能。
TCP 能保证接收和发送的所有字节内容和顺序完全相同。
TCP 协议在主动设备(发起连接的设备)和被动设备(接受连接的设备)之间创建连接。
一旦连接建立,任一方均可发起数据传送。
TCP协议是一种"流"协议。
这意味着消息中不存在结束标志。
所有接收到的消息均被认为是数据流的一部分。
S7 200 SMART与之间的TCP通讯可以通过两边调用OUC(开放式用户通讯)指令库中的TCP_CONNECT、TCP_SEND、TCP_RECV、DISCONNECT指令来实现。
图1.开放式用户通讯库开放式用户通信库需要使用 50 个字节的 V 存储器。
开放式的用户通讯连接资源包括8个主动连接和8个被动连接。
只可从主程序或中断例程中调用库函数,但不可同时从这两个程序中调用。
所需条件:1、软件版本:STEP 7-Micro/WIN SMART V2.22、SMART CPU固件版本:V2.23、通讯硬件:TP电缆(以太网电缆)所完成的通讯任务:将作为客户端的PLC(IP地址为192.168.0.101)中VB0-VB3的数据传送到作为服务器端的PLC(IP地址为192.168.0.102)的VB2000-VB2003中。
S7-200 SMART 客户端编程1、设置本机IP地址在客户端设置IP地址为192.168.0.101图2.设置IP地址2、建立TCP连接调用TCP_CONNECT指令建立TCP连接。
设置连接伙伴地址为192.168.0.102,远端端口为2001,本地端口为5000,连接标识ID为1。
利用SM0.0使能Active,设置为主动连接。
图3.调用TCP_CONNECT指令指令的参数输入参数:EN :使能输入Req:沿触发Active :TURE=主动连接(客户端)FALSE=被动连接(服务器)ConnID:连接ID为连接标识符,可能范围为0-65534。
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程序,经过辗转,一同学找我给点建议,本人对通信的经验实在是可怜,不敢乱说,只能说程序是可以适配,但水平有限,经验不够,还是另找高手实施。
LabVIEW,S7200 PLC自由口通信方法
LabVIEW,S7200 PLC自由口通信方法关键字:导读: 1 引言PLC作为一种稳定可靠、控制程序灵活可变的控制器,在工业控制系统中已经得到了广泛的应用。
随着计算机网络技术的发展,传统控制系统不断向多级分布式控制方向发展,要求PLC应具有通信和网络功能。
但是由于中小...1 引言PLC作为一种稳定可靠、控制程序灵活可变的控制器,在工业控制系统中已经得到了广泛的应用。
随着计算机网络技术的发展,传统控制系统不断向多级分布式控制方向发展,要求PLC应具有通信和网络功能。
但是由于中小型PLC 的人机接口功能不够完善,无法提供给用户一个美观又易于操作的交互界面。
如果将 PLC 与工控PC机结合起来,就能弥补PLC的不足,实现对控制参数的在线调整及系统运动状态的跟踪与监控。
本文通过串行通信技术实现单片机与S7-20O系列 PLC之间的自由口通信方法进行了研究,达到了预期的效果。
2 系统硬件设计2.1 系统构成系统上位机采用IPC,下位机由9台西门子S7-200PLC和2台进口智能仪表组成,组成结构如图1所示[1]。
其中PLC部分采用了3台CPU221,1台CPU222和5台CPU224。
上位机与 PLC采用两线制的RS-485接口组成控制系统。
整个控制系统采用主从方式构成工业监控网络,网络中有一个主站和多个从站。
各个从站点由唯一的地址码识别。
这样,上位机便能通过RS-485通信线对挂在上面的PLC和智能仪表进行控制,避免信息传递的紊乱,确保通信的准确可靠。
2.2 通信硬件实现由于S7-200系列PLC的通信口是RS-485串行接口,而计算机是RS-232串行接口,所以计算机与PLC在通信时采用了MAX485CPA芯片进行RS-485/RS-232转换,并加入光电隔离措施来提高系统的稳定性,转换电路如图2所示。
3 S7-200PLC自由口通信3.1 自由口通信方式S7-200 PLC的通信口是标准的RS-485串行通信口,支持PPI协议、 MPI协议、 PROFIBUS 协议和自由口协议,其中最具有特色的自由口协议通过用户程序定义通信端口,实现PLC与任何已知协议的智能仪器设备通信。
详细介绍S7-200SMART的自由口通信
详细介绍S7-200SMART的自由口通信
学习S7-200 SMART时了解到,基于RS485接口可实现一下几种通信:
1)modbus RTU通信
2)PPI协议通信
3)USS协议通信
4)自由口通信
何为自由口通信呢?
前三种通信必须要PLC和与其通信的设备支持相同的通信协议,如果两者之间没有共同的通信协议则需要用到自由口通信。
自由口通信也称无协议通信,需要根据对方设备的通信数据格式编写一个临时协议,不仅需要编程人员学会如何编写程序,还需要了解对方的通信数据格式,所以对编程人员要求较高,随着标准协议(modbus,USS等)普及,自由口应用越来越少,但是对于一下小的设备如扫码枪等,并没有集成标准通信协议,所以只能选用自由口通信,Moubus和USS其实是自由口的一个特例。
很多人碰到自由口通信就手足无措了,其实只要掌握规律,自由口通信不一定很难。
为此我总结了自由口通信的基本步骤:
1)读懂对方的数据格式。
串行通信中,数据是一位一位的进行发送,也就是0和1。
为了能够准确的将数据发送过去,往往会加上1个起始位,1个校验位,1个停止位(无校验是为2个停止位)如图1-1所示。
图1-1
我们就以Modbus RTU为例详细看一下串口通信中数据是如何发送和就收的。
ModbusRTU代码系统如下:
·1个起始位。
·7或8个数据位,最小的有效位先发送。
一文读懂S7-200SMART自由口通信!
一文读懂S7-200SMART自由口通信!学习S7-200 SMART时了解到,基于RS485接口可实现一下几种通信:1)modbus RTU通信2)PPI协议通信3)USS协议通信4)自由口通信何为自由口通信呢?前三种通信必须要PLC和与其通信的设备支持相同的通信协议,如果两者之间没有共同的通信协议则需要用到自由口通信。
自由口通信也称无协议通信,需要根据对方设备的通信数据格式编写一个临时协议,不仅需要编程人员学会如何编写程序,还需要了解对方的通信数据格式,所以对编程人员要求较高,随着标准协议(modbus,USS等)普及,自由口应用越来越少,但是对于一下小的设备如扫码枪等,并没有集成标准通信协议,所以只能选用自由口通信,Moubus和USS其实是自由口的一个特例。
很多人碰到自由口通信就手足无措了,其实只要掌握规律,自由口通信不一定很难。
为此我总结了自由口通信的基本步骤:1)读懂对方的数据格式。
串行通信中,数据是一位一位的进行发送,也就是0和1。
为了能够准确的将数据发送过去,往往会加上1个起始位,1个校验位,1个停止位(无校验是为2个停止位)如图1-1所示。
图1-1我们就以Modbus RTU为例详细看一下串口通信中数据是如何发送和就收的。
ModbusRTU代码系统如下:·1个起始位。
·7或8个数据位,最小的有效位先发送。
·1个奇偶校验位,设成无校验则没有。
·1个停止位(有校验时),2个Bit (无校验时)。
数据格式的描述如下表:11-bit 字符帧(BITl-BIT8为数据位):起始位 Bit1 Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 Bit8 校验位 停止位10-bit 字符帧(BITl-BIT7为数据位):起始位 Bit1Bit2 Bit3 Bit4 Bit5 Bit6 Bit7 校验位 停止位通信中要保证通信双方要有相同的波特率,数据格式,奇偶校验位。
S7200 SMART 自由口通信实例解读分析
S7200 Smart自由口通信:
(2)自由口通讯 S7-200 smart CPU的通信口可以设置为自由口模
式。选择自由口模式后,用户程序就可以完全控制 通信端口的控制,通信协议也完全受用户程序控制。 所谓的自由口通讯,就是通讯协议是由用户自由定 义的。 对于S7-200 smart PLC而言,基于本体自带的485 端口的网络所应用的协议,除了PPI协议以外,其 他都是自由口协议。例如USS协议、Modbus协议 等等都是特定的自由口通讯协议。
S7-200 Smart ——自由口通信解读
2020/6/14
S7200 Smart自由口通信:
S7-200 Smart串口通讯主要包括: 1)Modbus—PLC与支持Modbபைடு நூலகம்s RTU协议的 第三方设备通讯 •RTU Master-Protocol(RTU主站协议) •RTU Slave-Protocol(RTU从站协议) 2)USS—S7-200PLC与SIEMENS驱动设备的通讯 (如MM440等) 3)自由口通讯—S7-200PLC与自由协议的第三 方设备间的通讯
1.判断信息接收结束是否为字符间超 时结束(SM86.2 = 1),若是,则认 为接收成功,接收成功计算器 VB200 自加一; 2.消息接收成功时接收的信息拷贝到 VB300 为起始地址的存储区; 3.开始下一次 RCV 指令地执行
CPU 中断程序
S7-200 SMART CPU集成的RS485 端口(端口 0 )实现与条码扫描枪通信
2台S7-200 SMART CPU采用自由口通信方式实现相互通信。
两台PLC之间也可以使用自由口通信完成PLC之间的数据交换,我们以下面一个 例子说明两台PLC之间的自由口通信。 通信任务:CPU1 每秒触发一次 XMT 指令将 CPU 的实时时钟发送到 CPU2; CPU2 接收到 CPU1 发送的信息后立即将 CPU2 的实时时钟回复到 CPU1。
S7200SMART串口通讯和PID调节
S7-200SMART串口通讯和PID调节
S7-200SMART串口通讯
2014-9-2
通过反复测试都没成功,后来发现做为连接RS485通讯的串口接头焊得有问题,应该是3+,8-,而实际悍成了7-,所以无法通讯,重焊后进行测试通讯成功。
1.主站简单测试程序modbus_master_st40.smart1.smart
2.主站例程测试modbus_master_st40.smart 保持寄存器读入
●开关量读入:
●开关量军写出:
写入寄存器
Addr 读写从站的数据地址:选择读写的数据类型00001至0xxxx-开关量输出
10001至1xxxx-开关量输入
30001至3xxxx-模拟量输入
40001至4xxxx-保持寄存器
3.做为从站:
保持寄存器读取
通道值采集AIW16(第一个扩展AM06第一通道)
开关量输入点读取
当I0.0为1时
开关量输出点
通过测试发现,做从站时不能直接读取AQW通道的值和M寄存器中的值,技术支持建议所有需要传送的数据全部放在V区的连续寄存器中,只需要一个指令就可以全部读取,然后再解析就可以了。
4.PID调节
●设置向导中设置参数,
●调用设置好的PID子程序.
●调试
●发现AO的输出通道灯和DIAG灯报错(红灯),是因为没有接线的缘故,将通
道接到ADAM4017+的第二通道上后就正常了,显示绿灯。
●采集到的数据如下:
在“工具”下面有PID控制面板,可以用于调试PID参数,观察调节变化曲线。
s7200自由通信
s7200自由通信
把组态王里的s7200自由通信程序调在西门子软件上+自己在建立了个子程序编了个小程序,下载到s7-200里,也置位到run状态,为什么到最后plc不工作,在组态王里都设置了,并且做了gprsdtu能和电脑联机,plc不工作,就没有数据传到组态王,用的是opc添加的变量。
问题出在哪里?
问题补充:
通ppi的线通过opc能和plc通信,能在组态王里显示数据,问题是把组态王里有个西门子自带的自由通信程序下载到plc里(听说用modbus要加模块em277或em241,也没有用过,也觉得没必要吧,)另外也没有占用里面的v区,就编了个自锁小程序(单独建立了个子程序),就置为run 状态,输入输出点的灯就是没有反应,是程序冲突了吗?
最佳答案
gprsdtu?好像无次连接吧。
首先不管plc在run或者stop状态,只要plc和组态王联机成功都可以监控到数据,这说明通信设置ok了。
其次,plc打到run,这个是硬件方式,还有个就是软件里也run,plc的run指示灯会亮,这样plc就在run运行状态。
组态王的通信可以采用modbus,也可以采用ppi,先采
用ppi通信模式试试,联机成功后再改modbus通信。
S7-200SMART MODBUS通信介绍与实例编程
S7-200SMART MODBUS通信介绍与实例编程西门子smart200PLC的详细结构图一. 西门子S7-200 SMART作为modbus从站1.检查Micro/WIN SMART Modbus RTU从站指令库(图1),库中应当包括MBUS_INIT 和MBUS_SLAVE两个子程序。
西门子smart200的modbus从站库文件图1. 指令树中的库指令2.编程时使用SM0.1调用子程序MBUS_INIT进行初始化,使用SM0.0调用MBUS_SLAVE,并指定相应参数。
关于参数的详细说明,可在子程序的局部变量表中找到;西门子smart200的modbus从站详细分析图2.调用Modbus RTU通信指令库图中参数意义如下:a.模式选择:启动/停止Modbus,1=启动;0=停止b.从站地址:Modbus从站地址,取值1~247c.波特率:可选1200,2400,4800,9600,19200,38400,57600,115200d.奇偶校验:0=无校验;1=奇校验;2=偶校验e.端口:0=CPU中集成的 RS-485,1=可选信号板上的RS-485 或 RS-232。
f.延时:附加字符间延时,缺省值为0g.最大I/Q位:参与通信的最大I/O点数,S7-200 SMART 的I/O映像区为256/256(目前只能最多连接4个扩展模块,因此目前最多I/O点数为188/188)h.最大AI字数:参与通信的最大AI通道数,最多56个i.最大保持寄存器区:参与通信的V存储区字(VW)j.保持寄存器区起始地址:以&VBx指定(间接寻址方式)k.初始化完成标志:成功初始化后置1l.初始化错误代码m.Modbus执行:通信中时置1,无 Modbus 通信活动时为 0。
n.错误代码:0=无错误3.在CPU的V数据区中分配库指令数据区(Library Memory)Modbus Slave 指令库需要一个781个字节的全局 V 存储区。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
S7200 Smart自由口通信:
1)自由口通讯硬件 西门子S7 -200 smart系列PLC的自由口是基于RS485的硬件, 采用正负两根信号线作为传输线路。两线间的电压差为 +2V~6V表示逻辑'1':两线间的电压差为-2V~-6V表示逻辑 '0'。 西门子串口的插头是九针标准插头,其中各个针脚的定义在 下表中得以体现,最重要的两根线是表中红线标出的3号脚 和8号脚,也就是通常说的'3正8负',其中3对应信号B,8对 应信号A,其它的引脚可以完成一些额外的功能,比如24V 直流电的供应,5V直流电的供应以及发送请求等。但是对于 最基本的串口通讯而言,3脚和8脚两根线就足够了,所以下 面将着重介绍这两根线的逻辑。
1.判断信息接收结束是否为字符间超 时结束(SM86.2 = 1),若是,则认 为接收成功,接收成功计算器 VB200 自加一; 2.消息接收成功时接收的信息拷贝到 VB300 为起始地址的存储区; 3.开始下一次 RCV 指令地执行
CPU 中断程序
S7-200 SMART CPU集成的RS485 端口(端口 0 )实现与条码扫描枪通信
RCV 接收指令实例 例子 1 :S7-200 SMART CPU集成的RS485 端口(端口 0 )实现与口,其与 S7-200 SMART CPU 集成的 RS485 端口连接时需要使用 RS232/485 转换设备或 RS-232/PPI 多主站电缆。 条码扫描枪接收到条码后会自动通过 RS232 端 口发送报文,S7-200 SMART CPU 需要调用 RCV 指令接收报文,并在接收完成中断中再次使 能 RCV 指令循环接收报文。
S7-200 SMART CPU集成的RS485 端口(端口 0 )实现与条码扫描枪通信
注意:此处使用的 调用指令为SM0.1
图 3. 连接中断子程序 INT_0 到通信端口 0 接收完成事 件,并使能中断;使用 SM0.1 触发 RCV 指令地执行。
S7-200 SMART CPU集成的RS485 端口(端口 0 )实现与条码扫描枪通信
2台S7-200 SMART CPU采用自由口通信方式实现相互通信。
两台PLC之间也可以使用自由口通信完成PLC之间的数据交换,我们以下面一个 例子说明两台PLC之间的自由口通信。 通信任务:CPU1 每秒触发一次 XMT 指令将 CPU 的实时时钟发送到 CPU2; CPU2 接收到 CPU1 发送的信息后立即将 CPU2 的实时时钟回复到 CPU1。
S7-200 SMART CPU集成的RS485 端口(端口 0 )实现与条码扫描枪通信
1.设置 SMB30 = 2#00001001 (自由 口通信,波特率 9600,8 位数据位, 无校验); 2.设置 SMB87 = 2#10010100,使用 空闲线检测为信息接收的起始条件, 使用字符间定时器为信息接收的结束 条件 ;
S7200 Smart自由口通信:
自由口的指令一共有两条,一条是发送指令,一条是接收 指令。我们在谈及发送或接收的时候往往会对立地去看读 或写两个概念,但是读与写,发送与接收并不是相同的概 念,一般在谈及读或写的时候往往是基于一些相对高级的 通讯,比如主从之间的通讯,主站可以对从站进行读或写 的操作。相对于读和写的概念而言,发送和接收指令更为 基本 例如A和B两个通讯对象,A发送一个报文给B,这是一个发 送的过程,B接收到A发送给它的报文,这是接收的过程。 而对于读和写则复杂的多,例如A作为主站想要读取B的数 据内容,则需要A首先发一个读请求给B,B接收到了A发送 过来的读请求之后作出判断,从而将A想要的数据由B再发 送给A,由A接收到这个数据从而完成一次读的过程。所以 相对读和写,发送和接收的过程要基本的多,而自由口通 讯用到的指令就是发送和接收指令。
S7200 Smart自由口通信:
(2)自由口通讯 S7-200 smart CPU的通信口可以设置为自由口模 式。选择自由口模式后,用户程序就可以完全控制 通信端口的控制,通信协议也完全受用户程序控制。 所谓的自由口通讯,就是通讯协议是由用户自由定 义的。 对于S7-200 smart PLC而言,基于本体自带的485 端口的网络所应用的协议,除了PPI协议以外,其 他都是自由口协议。例如USS协议、Modbus协议 等等都是特定的自由口通讯协议。
S7-200 Smart ——自由口通信解读
S7200 Smart自由口通信:
S7-200 Smart串口通讯主要包括: 1)Modbus—PLC与支持Modbus RTU协议的 第三方设备通讯 •RTU Master-Protocol(RTU主站协议) •RTU Slave-Protocol(RTU从站协议) 2)USS—S7-200PLC与SIEMENS驱动设备的通讯 (如MM440等) 3)自由口通讯—S7-200PLC与自由协议的第三 方设备间的通讯
注意:此处使用的调用指令为SM0.1
S7-200 SMART CPU集成的RS485 端口(端口 0 )实现与条码扫描枪通信
注意:此处使用的 调用指令为SM0.1
图 2.设置空闲线定时器 SMW90 = 5 ms,字符 间定时器 SMW92 = 5 ms,允许最大接收字符 个数 SMB94 = 50;
S7200 Smart自由口通信:
SMB30 和 SMB130 分别组态通信 端口 0 和 1 以进行自由端口操作,并提供波 特率、奇偶校验和数据位数的选 择。右图显示了自由端口 控制字节。对于所有组态,都生 成一个停止位。
S7200 Smart自由口通信:
发送报文格式
接收报文格式
S7200 Smart自由口通信实例:
接收过程首先执行RCV指令,启动 接收,启动之后会进入一种接收等 待的状态,等待起始状态的满足, 当起始条件满足以后 SMB86/186=0,此时数据将按照 发送的顺序进入信息缓冲区,直到 结束条件的满足,结束条件满足以 后SMB86/186不再等于0,之后接 收过程结束并产生接收信息完成中 断。在整个过程中最为重要的就是 起始条件和结束条件,想要将自由 口通讯学好,这两个条件是必不可 少也是最为关键的部分。