如何实现S7200SMART自由口通讯

合集下载

s7-200自由口通信

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 ⾃由⼝通信概述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-200SMARTMODBUS通信介绍与实例编程

【案例】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)。

S7-200自由口模式通信1

S7-200自由口模式通信1

S7-200自由口模式通信1本例说明如何以自由协议实现计算机与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-200smart 232自由口通信程序可以发送和接收

S7-200smart 232自由口通信程序可以发送和接收

块: MAIN 作者:创建日期: 09/02/2016 02:35:29 pm 上次修改日期: 09/05/2016 04:36:38 pm地址符号变量类型数据类型注释1..TEMP ..2..TEMP ..3..TEMP ..4..TEMP..程序注释程序段 1程序段注释MOV_BENOENOUT INMOV_B ENOENOUT INMOV_B ENOENOUT INMOV_W ENOEN OUT INMOV_W ENOEN OUT INMOV_B ENOEN OUT INFirst_Scan_On16#19P1_Config16#94P1_Ctrl_Rcv16#0A P1_End_Char0P1_Idle_Time5000P1_Timeout225P1_Max_CharATCH ENOENINT EVNTATCH ENO ENINT EVNTENIINT_026INT_124符号地址注释First_Scan_On SM0.1仅在第一个扫描周期时接通INT_0INT0中断例程注释INT_1INT1中断例程注释P1_Config SMB130组态端口 1通信:奇偶校验、每个字符的数据位数、波特率和协议P1_Ctrl_Rcv SMB187接收消息控制P1_End_Char SMB189消息结束字符P1_Idle_Time SMW190给定的空行时间周期(以毫秒为单位)P1_Max_Char SMB194要接收的最大字符数(1 到 255 个字节)P1_Timeout SMW192给定的字符间/消息定时器超时值(以毫秒为单位)程序段 2PRCVENOENTBLPORTAlways_OnVB1001符号地址注释Always_On SM0.0始终接通程序段 3PR RCVENOENTBLPORTXMTENO ENTBLPORTM0.0P1_Ctrl_Rcv_71VB1001VB3001符号地址注释P1_Ctrl_Rcv_7SM187.70=禁用接收消息功能,1=启用接收消息功能创建日期: 09/02/2016 02:35:29 pm上次修改日期: 09/02/2016 02:35:29 pm地址符号变量类型数据类型注释1.EN IN BOOL.2..IN..3..IN_OUT..4..OUT..5..TEMP..子例程注释程序段 1程序段注释创建日期: 09/02/2016 02:35:29 pm 上次修改日期: 09/03/2016 06:10:59 pm地址符号变量类型数据类型注释1..TEMP ..2..TEMP ..3..TEMP ..4..TEMP..中断例程注释程序段 1程序段注释S RCVENOENTBLPORTR S M0.0P1_Ctrl_Rcv_71VB1001M0.01M1.01符号地址注释P1_Ctrl_Rcv_7SM187.70=禁用接收消息功能,1=启用接收消息功能创建日期: 09/03/2016 04:29:15 pm上次修改日期: 09/03/2016 06:11:34 pm地址符号变量类型数据类型注释1..TEMP..2..TEMP..3..TEMP..4..TEMP..中断例程注释程序段 1程序段注释M1.0M1.01。

S7-200SMART与V20变频器进行自由口通信

S7-200SMART与V20变频器进行自由口通信

S7-200SMART与V20变频器进行自由口通信
前面以S7-200SMART与英威腾变频器进行自由口通信为例详细讲解了自由口通信的方法及步骤,本文再带大家一起来学习与V20变频器进行自由口通信的程序编写方法。

V20支持标准的modbusRTU 协议,真正使用时可以使用modbus通信,本文主要是教大家如何编写自由口协议程序。

总结了一下自由口通信的基本步骤如下:
1. 研究弄懂对方的通信协议。

自由口也称自由协议或无协议通信,即通信双方没有共同的通信协议,只能临时根据某一方的协议进行发送和接收数据,以达到交换数据的目的。

那么意味着每次书写的程序没有固定格式,不仅需要变成人员能掌握程序的编写,还要求编程人员能快速的读懂对方的通信协议。

查阅V20变频器手册得知,FC3 - 读保持寄存器读保持寄存器命令格式:
变频器响应反馈数据格式:
FC6 - 写单一寄存器命令格式:
变频器响应反馈数据格式:
FC10 - 写多寄存器命令格式:
变频器响应反馈数据格式:
2. 根据对方的协议编写发送和接收数据的程序。

编写程序前应找到关键通信地址,控制启停正反转的控制字地址为40100,频率地址为40101。

应转换成十六进制地址,转换方法将40100-40001=99,再将99转换成16#0063,同理40101转换成16#0064。

程序如下:。

【电气工控自动化】S7-200 SMART与V20变频器进行自由口通信

【电气工控自动化】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。

s7-200自由口通信

s7-200自由口通信

S7-200自由口通讯一、基础知识介绍(名词理解,原理,工作机制)1、S7-200CPU的通讯口可以设置为自由口模式(如何设置成自由口模式?)。

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

S7-200 CPU处于自由口通信模式时,通信功能完全由用户程序控制,所有的通信任务和信息定义均需由用户编程实现。

2、S7-200CPU上的通讯口在电气上是标准的RS-485半双工串行通讯口。

此串行字符通信的格式可以包含:○一个起始位。

○7或8位字符(数据字节)。

○一个奇偶校验位,或没有校验位。

○一个停止位。

○通信波特率可以设置为1200,2400,4800,9600,19200,38400,57600,115200 bit/s。

凡是符合这些格式的串行通信设备,都可以和S7-200 CPU通信。

借助自由口通信模式,S7-200 CPU 可与许多通信协议公开的其他设备、控制器进行通信,其波特率为1200~115200bit/s。

自由口通信是一种基于RS485 硬件基础上,允许应用程序控制S7-200 CPU 的通信端口、以实现一些自定义通信协议的通信方式。

3、自由口通讯(顾名思义很自由)可以通过用户程序灵活控制,没有固定模式。

S7-200 可通过自由口通讯协议访问下列设备:– 带用户端软件的PC机,– 条形码阅读器,– 串口打印机,– 并口打印机,– S7-200,– S7-300 with CP 340– 非Siemens PLC,– 调制解调器。

S7-200 CPU 通信端口是RS485 标准,因此如果通信对象是RS232 设备,则需要使用RS232/PPI 电缆。

4、“请求-响应”工作机制:S7-200 CPU可以作为主站先向从站发送数据请求,然后等待从站的数据响应,也可以作为从站,首先等待主站发送过来的数据请求,然后根据请求的内容,按规则把相关数据返回给主站。

S7-200 SMART PLC 串口通信说明(图文并茂)

S7-200 SMART PLC 串口通信说明(图文并茂)

S 7-200 S M A R T 串口通信简介S 7-200 S M A R T 支持的串口通信硬件及连接资源如表 1所示: 注意:1. P P I 模式只支持 S 7-200 S M A R T C P U 与 H M I 设备之间的通信;2. 通信信号板的工作模式(R S 485/R S 232)是由用户决定的,可以在 M i c r o /W I N S M A R T 中通过设置系统块来设置。

详细设置方法见:如何设置串口通信参数 通信端口定义1.S 7-200 S M A R T C P U 本体集成 R S 485 端口 (端口 0)表 2. S 7-200 S M A R T C P U 本体集成 R S 485 端口引脚定义 2.通信信号板 表 1.S 7-200 S M AR T 串口参数CPU 本体集成通讯口通信信号板(S B C M 01)通讯口类型R S 485R S 485R S 232支持的通信协议P P I / 自由口 / M O D B U S / U S S 波特率P P I (9600,19200,187500 b /s )自由口(1200,115200 b /s )连接资源每个通信口可连接 4 个 H M I 设备C P U 插座(9针母头)引脚号信号P o r t 0(端口0)引脚定义1屏蔽机壳接地224V 返回逻辑地(24V 公共端)3R S -485信号 B R S -485信号 B4发送请求R T S (T T L )55V 返回逻辑地(5V 公共端)6+5V +5V ,通过100 O h m 电阻7+24V +24V8R S -485信号 A R S -485信号 A9不用10位协议选择(输入)金属壳屏蔽机壳接地表 3.通信信号板(P o r t 1)引脚定义通信信号板(S B C M 01)引脚标记R S 485R S 232机壳接地机壳接地T X /B R S 485-B R S 232-T x R T S R T S (T T L )R T S (T T L )M 逻辑公共端逻辑公共端R X /AR S 485-AR S 232-R x通信信号板通信信号板可以扩展 C P U 的通信端口,其安装位置如图 1所示。

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

如何实现S7-200SMART自由口通讯
自由口通讯协议的关键条件
定义开始接收消息和停止接收消息的条件。

1、空闲线检测:设置il=1,sc=0,bk=0,smw90/smw190>0
空闲线条件定义为传输线路上的安静或者空闲的时间。

SMW90/SMW190中是以ms为单位的空闲时间。

在该方式下,从执行接收指令开始起动空闲时间检测。

在传输线空闲的时间大于等于SMW90/SMW190中设定的时间之后接收的第一个字符作为新信息的起始字符。

接收消息功能将会忽略在空闲时间到达之前接收到的任何字符,并会在每个字符后面重新启动空闲线定时器。

空闲线时间应大于以指定波特率传送一个字符所需要的时间。

空闲线时间的典型为以指定的波特率传送3个字符所需要的时间。

传输速率为19200bit/s时候,可设置空闲时间为2ms。

对于二进制协议,没有特定起始字符的协议或指定了消息之间最小时间间隔的协议,可以将空闲线检测用作开始条件。

2、起始字符检测:设置il=0,sc=1,bk=0,忽略smw90/smw190
起始字符是消息的第一个字符,以SMB88/SMB188中的起始字符作为接收到的消息开始的标志。

接收消息功能忽略起始字符之前收到的字符,起始字符和起始字符之后收到的所有字符都存储在消息缓冲区中。

起始字符检测一般用于ASCII协议。

3、空闲线和起始字符:设置il=1,sc=1,bk=0,SMW90/SMW190大于0
满足空闲线条件之后,接收消息功能查找指定的起始字符。

如果接收到的字符不是
smB88/smb188指定的起始字符,将开始重新检测空闲线条件。

在满足空闲线条件之前接收到的以及起始字符之前接收到的字符都将会被忽略。

这种方式尤其适合用于通讯链路上有多台设备的情况。

4 、break检测:设置il=0,sc=0,bk=1,检测smw90/smw190和smb88/smb188以接收到的break(断开)作为接收消息的开始。

当接收到的数据保持为0的时间大于完整字符(包含起始位,数据位,奇偶校验位和停止位)传输的时间,表示检测到break。

断开条件之前接收到的字符将忽略,断开条件之后接收到的任意字符都会存储在消息缓冲区中。

5、break和起始字符:il=0,sc=1,bk=1,忽略smw90/smw190
断开条件满足后,接收消息功能将查找指定的起始字符。

如果接收到的字符不是起始字符,将重新搜索断开条件。

所有在断开条件满足之前在接收到起始字符之前接收的字符都会忽略。

起始字符和所有后续字符一起存入消息缓冲区
6、任何字符开始接受:设置il=1,sc=0,bk=0,smw90/smw190=0
忽略smb88/smb188中的起始字符。

应为smw90/smw190中的空闲线时间为0,接收指令已经执行,便将立即开始强制接收所有的任意字符,并将存入消息缓冲区。

7、任意字符开始,消息定时器超过则结束接收消息:令il = 1,sc = 0,bk = 0,smw90/smw190 = 0,忽略smb88/smb188中的起始字符。

以上设置用于实现从任意字符开始接收消息。

此外设置c/m = 1,tmr =1,用smw92/smw192设置以ms为单位的消息超时时间,用消息定时器监视接收是否超时。

如果未满足其他结束条件,在消息定时器超时的时候,将会终止接收消息功能。

这对自由口协议的主站是非常有用的。

1.SMB30定义
定义通讯的传输速度和模式
SMB30=16#05=2# 00 0 001 01
其中从高位到低位依次:
00:表示无校验
0:表示8个数据位
001:表示波特率19200
01:表示自由口通讯
2.SMB87定义
定义接收消息控制字节
SMB87=16#FC = 2#1111 1100
其中从高位到低位依次:
en=1:启用接受消息功能
sc=1:使用SMB88 的值监测数据的起始
ec=1:使用SMB89 的值监测数据的终止
il=1:使用SMW90 的值监测空闲条件
c/m=1:定时器为消息定时器
tmr=1:超过SMW92 中的时间段,则终止接收
bk=0:忽略中断条件
SM87.0=0 (无效)
3.定义SMB88、SMB89、SMW90、SMW92、SMB94
SMB88:定义开始字符为 2A
SMB89:定义结束字符为 0A
SMW90:空闲线时间段,单位:MS
SMW92:消息定时器的超时值(单位:MS),若超过该时间段,则停止接受消息
SMB94:要接受的最大字符数(1--255个字节);即使未使用字符计数消息终止,此范围也必须设置为所需的最大数据交换区
l SMW90=1000000us/19200 *11*3
其中:1000000/19200得到传输1个位需要多长时间,一个字符11个位,检测空闲3.5个字符,约等于3个字符
l SMW92=1000000us/19200 *11*20*1.5
其中:20表示字节接收最大的字节数,与SMB94有关,1.5倍表示整个消息长度的倍数
4.执行接受指令
TBL:
5.连接接受完成中断和发送完成中断,并且开放中断
6.接收完成中断:
由于我们使用的RS485转USB的线缆是半双工,发送和接收需要间隔至少5ms的时间。

所以接收完成后先延时5ms在发送。

7.SMB34定时中断:
延时时间到,执行发送指令,把先期接收到的数据再发送给PC。

8.发送完成中断:。

相关文档
最新文档