西门子S7200模拟量编程doc.docx

上传人:b****5 文档编号:28627550 上传时间:2023-07-19 格式:DOCX 页数:40 大小:2.29MB
下载 相关 举报
西门子S7200模拟量编程doc.docx_第1页
第1页 / 共40页
西门子S7200模拟量编程doc.docx_第2页
第2页 / 共40页
西门子S7200模拟量编程doc.docx_第3页
第3页 / 共40页
西门子S7200模拟量编程doc.docx_第4页
第4页 / 共40页
西门子S7200模拟量编程doc.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

西门子S7200模拟量编程doc.docx

《西门子S7200模拟量编程doc.docx》由会员分享,可在线阅读,更多相关《西门子S7200模拟量编程doc.docx(40页珍藏版)》请在冰豆网上搜索。

西门子S7200模拟量编程doc.docx

西门子S7200模拟量编程doc

西门子S7-200模拟量编程

本文以EM235为例讲解S7-200模拟量编程,主要包括以下内容:

1、模拟量扩展模块接线图及模块设置

2、模拟量扩展模块的寻址

3、模拟量值和A/D转换值的转换

4、编程实例

模拟量扩展模块接线图及模块设置

EM235是最常用的模拟量扩展模块,它实现了4路模拟量输入和1路模拟量输出功能。

下面以EM235为例讲解模拟量扩展模块接线图,如图1。

图1

图1演示了模拟量扩展模块的接线方法,对于电压信号,按正、负极直接接入X+和X-;对于电流信号,将RX和X+短接后接入电流输入信号的“+”端;未连接传感器的通道要将X+和X-短接。

对于某一模块,只能将输入端同时设置为一种量程和格式,即相同的输入量程和分辨率。

(后面将详细介绍)

EM235的常用技术参数:

模拟量输入特性

模拟量输入点数

4

输入范围

电压(单极性)0~10V0~5V0~1V0~500mV0~100mV0~50mV

电压(双极性)±10V±5V±2.5V±1V±500mV±250mV±100mV±50mV±25mV

电流0~20mA

数据字格式

双极性全量程范围-32000~+32000

单极性全量程范围0~32000

分辨率

12位A/D转换器

模拟量输出特性

模拟量输出点数

1

信号范围

电压输出±10V

电流输出0~20mA

数据字格式

电压-32000~+32000

电流0~32000

分辨率电流

电压12位

电流11位

下表说明如何用DIP开关设置EM235扩展模块,开关1到6可选择输入模拟量的单/双极性、增益和衰减。

EM235开关

单/双极性选择

增益选择

衰减选择

SW1

SW2

SW3

SW4

SW5

SW6

 

 

 

 

 

ON

单极性

 

 

 

 

 

 

 

OFF

双极性

 

 

 

 

 

OFF

OFF

 

 

X1

 

 

 

 

OFF

ON

 

 

X10

 

 

 

 

ON

OFF

 

 

X100

 

 

 

 

ON

ON

 

 

无效

 

ON

OFF

OFF

 

 

 

 

 

0.8

OFF

ON

OFF

 

 

 

 

 

0.4

OFF

OFF

ON

 

 

 

 

 

0.2

由上表可知,DIP开关SW6决定模拟量输入的单双极性,当SW6为ON时,模拟量输入为单极性输入,SW6为OFF时,模拟量输入为双极性输入。

SW4和SW5决定输入模拟量的增益选择,而SW1,SW2,SW3共同决定了模拟量的衰减选择。

根据上表6个DIP开关的功能进行排列组合,所有的输入设置如下表:

单极性

满量程输入

分辨率

SW1

SW2

SW3

SW4

SW5

SW6

ON

OFF

OFF

ON

OFF

ON

0到50mV

12.5μV

OFF

ON

OFF

ON

OFF

ON

0到100mV

25μV

ON

OFF

OFF

OFF

ON

ON

0到500mV

125uA

OFF

ON

OFF

OFF

ON

ON

0到1V

250μV

ON

OFF

OFF

OFF

OFF

ON

0到5V

1.25mV

ON

OFF

OFF

OFF

OFF

ON

0到20mA

5μA

OFF

ON

OFF

OFF

OFF

ON

0到10V

2.5mV

双极性

满量程输入

分辨率

SW1

SW2

SW3

SW4

SW5

SW6

ON

OFF

OFF

ON

OFF

OFF

±25mV

12.5μV

OFF

ON

OFF

ON

OFF

OFF

±50mV

25μV

OFF

OFF

ON

ON

OFF

OFF

±100mV

50μV

ON

OFF

OFF

OFF

ON

OFF

±250mV

125μV

OFF

ON

OFF

OFF

ON

OFF

±500

250μV

OFF

OFF

ON

OFF

ON

OFF

±1V

500μV

ON

OFF

OFF

OFF

OFF

OFF

±2.5V

1.25mV

OFF

ON

OFF

OFF

OFF

OFF

±5V

2.5mV

OFF

OFF

ON

OFF

OFF

OFF

±10V

5mV

 

6个DIP开关决定了所有的输入设置。

也就是说开关的设置应用于整个模块,开关设置也只有在重新上电后才能生效。

输入校准

模拟量输入模块使用前应进行输入校准。

其实出厂前已经进行了输入校准,如果OFFSET和GAIN电位器已被重新调整,需要重新进行输入校准。

其步骤如下:

A、切断模块电源,选择需要的输入范围。

B、接通CPU和模块电源,使模块稳定15分钟。

C、用一个变送器,一个电压源或一个电流源,将零值信号加到一个输入端。

D、读取适当的输入通道在CPU中的测量值。

E、调节OFFSET(偏置)电位计,直到读数为零,或所需要的数字数据值。

F、将一个满刻度值信号接到输入端子中的一个,读出送到CPU的值。

G、调节GAIN(增益)电位计,直到读数为32000或所需要的数字数据值。

H、必要时,重复偏置和增益校准过程。

EM235输入数据字格式

下图给出了12位数据值在CPU的模拟量输入字中的位置

图2

可见,模拟量到数字量转换器(ADC)的12位读数是左对齐的。

最高有效位是符号位,0表示正值。

在单极性格式中,3个连续的0使得模拟量到数字量转换器(ADC)每变化1个单位,数据字则以8个单位变化。

在双极性格式中,4个连续的0使得模拟量到数字量转换器每变化1个单位,数据字则以16为单位变化。

EM235输出数据字格式

图3给出了12位数据值在CPU的模拟量输出字中的位置:

图3

数字量到模拟量转换器(DAC)的12位读数在其输出格式中是左端对齐的,最高有效位是符号位,0表示正值。

模拟量扩展模块的寻址

每个模拟量扩展模块,按扩展模块的先后顺序进行排序,其中,模拟量根据输入、输出不同分别排序。

模拟量的数据格式为一个字长,所以地址必须从偶数字节开始。

例如:

AIW0,AIW2,AIW4……、AQW0,AQW2……。

每个模拟量扩展模块至少占两个通道,即使第一个模块只有一个输出AQW0,第二个模块模拟量输出地址也应从AQW4开始寻址,以此类推。

图4演示了CPU224后面依次排列一个4输入/4输出数字量模块,一个8输入数字量模块,一个4模拟输入/1模拟输出模块,一个8输出数字量模块,一个4模拟输入/1模拟输出模块的寻址情况,其中,灰色通道不能使用。

图4

模拟量值和A/D转换值的转换

假设模拟量的标准电信号是A0—Am(如:

4—20mA),A/D转换后数值为D0—Dm(如:

6400—32000),设模拟量的标准电信号是A,A/D转换后的相应数值为D,由于是线性关系,函数关系A=f(D)可以表示为数学方程:

A=(D-D0)×(Am-A0)/(Dm-D0)+A0。

根据该方程式,可以方便地根据D值计算出A值。

将该方程式逆变换,得出函数关系D=f(A)可以表示为数学方程:

D=(A-A0)×(Dm-D0)/(Am-A0)+D0。

具体举一个实例,以S7-200和4—20mA为例,经A/D转换后,我们得到的数值是6400—32000,即A0=4,Am=20,D0=6400,Dm=32000,代入公式,得出:

A=(D-6400)×(20-4)/(32000-6400)+4

假设该模拟量与AIW0对应,则当AIW0的值为12800时,相应的模拟电信号是6400×16/25600+4=8mA。

又如,某温度传感器,-10—60℃与4—20mA相对应,以T表示温度值,AIW0为PLC模拟量采样值,则根据上式直接代入得出:

T=70×(AIW0-6400)/25600-10

可以用T直接显示温度值。

模拟量值和A/D转换值的转换理解起来比较困难,该段多读几遍,结合所举例子,就会理解。

为了让您方便地理解,我们再举一个例子:

某压力变送器,当压力达到满量程5MPa时,压力变送器的输出电流是20mA,AIW0的数值是32000。

可见,每毫安对应的A/D值为32000/20,测得当压力为0.1MPa时,压力变送器的电流应为4mA,A/D值为(32000/20)×4=6400。

由此得出,AIW0的数值转换为实际压力值(单位为KPa)的计算公式为:

VW0的值=(AIW0的值-6400)(5000-100)/(32000-6400)+100(单位:

KPa)

编程实例

您可以组建一个小的实例系统演示模拟量编程。

本实例的的CPU是CPU222,仅带一个模拟量扩展模块EM235,该模块的第一个通道连接一块带4—20mA变送输出的温度显示仪表,该仪表的量程设置为0—100度,即0度时输出4mA,100度时输出20mA。

温度显示仪表的铂电阻输入端接入一个220欧姆可调电位器,简单编程如下:

温度显示值=(AIW0-6400)/256

编译并运行程序,观察程序状态,VW30即为显示的温度值,对照仪表显示值是否一致。

 

MODBUSRTU通讯协议在S7-200中的应用

1 引言

工业控制已从单机控制走向集中监控、集散控制,如今已进入网络集约制造时代。

工业控制器连网也为网络管理提供了方便。

Modbus就是工业控制器的网络协议中的一种。

Modbus协议是应用于电子控制器上的一种通讯约规。

通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。

它已经成为主流的工业标准之一。

他为符合Modbus协议的不同厂商生产的控制设备可以连成工业网络,进行集中监控。

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口(Port0)。

要实现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两个子程序。

如果没有,须安装Micro/WIN32 V3.2 Instruction Library(指令库)软件包,如图1所示。

图1 指令树中的库指令

(3) 编程时使用SM0.1—调用子程序MBUS_INIT进行初始化,使用SM0.0—调用研究MBUS_SLAVE,并指定相应参数。

关于参数的详细说明,可在子程序的局部变量表中找到。

示例参见图2:

图2 调用MODBUS通讯指令库

图2中参数意义如下:

 

●模式选择:

启动/停止MODBUS,1=启动;0=停止;

● 从站地址:

MODBUS从站地址,取值1~247;

● 波特率:

可选1200,2400,4800,9600,19200,38400,57600;

● 奇偶校验:

0=无校验;1=奇校验;2=偶校验; 

● 延时:

附加字符间延时,缺省值为0; 

●最大I/Q位:

参与通讯的最大I/O点数,S7-200的I/O映像区为128/128,缺省值为128;

●最大AI字数:

参与通讯的最大AI通道数,可为16或32;

●最大保持寄存器区:

参与通讯的V存储区字(VW);

● 保持寄存器区起始地址:

以&VBx指定(间接寻址方式);

● 初始化完成标志:

成功初始化后置1; 

● 错误代码:

0=无错误。

(4) 注意的问题

调用Step7-Mciro/WIN32 V3.2 Instruction Library(指令库)需要分配库指令数据区(Library Memory)。

库指令数据区是相应库的子程序和中断程序所要用到的变量存储空间。

如果在编程时不分配库指令数据区,编译时会产生许多相同的错误。

由子程序参数HoldStart和MaxHold指定的保持寄存器区,是在S7-200 CPU的V数据存储区中分配,此数据区不能和库指令数据区有任何重叠,否则在运行时会产生错误,不能正常通讯。

注意Modbus 中的保持寄存器区按“字”寻址,即MaxHold规定的是VW而不是VB的个数。

3 Modbus RTU协议测试

包含Modbus RTU从站指令库的项目编译、下载到CPU中后,在编程计算机(PG/PC)上运行一些Modbus测试软件可以检验S7-200的Modbus RTU通讯是否正常,这对查找故障点很有用。

测试软件通过计算机串口(RS-232)和PC/PPI电缆连接CPU。

(以ModScan32测试软件为例作以检测说明)

3.1 测试软件 

测试软件ModScan32如图3所示。

图3 Modbus RTU测试软件:

ModScan32

图3中,ModScan32测试软件的画面中相关参数意义如下:

Address:

ModBus中存储区的起始地址;

Device Id:

PLC ModBus的端口地址;

Length:

参与通讯的V存储区字的长度。

3.2 参数设置

对ModScan32测试软件的通讯参数进行相关设置,要与S7-200的Modbus RTU指令库MBUS_INIT中所设定的参数相统一,这样即可进行通讯检测。

ModScan32通讯参数设置如图4所示。

4 ModScan32通讯参数设置

4 MODBUS RTU地址与S7-200的地址对应关系

MODBUS地址总是以00001、30004之类的形式出现。

S7-200内部的数据存储区与MODBUS的0、1、3、4共4类地址的对应关系如附表所示:

附表 MODBUS地址对应表

说明:

其中T为S7-200中的缓冲区起始地址,即HoldStart。

如果已知S7-200中的V存储区地址,推算MODBUS地址的公式如下:

MODBUS地址=40000+(T/2+1) 

其中T为偶数。

5 结束语

Modbus RTU作为一种工业控制器的网络通讯协议,其在如今众多的控制器之间进行联网、监控、相互通讯等方面发挥着重大作用,本文以典型的S7-200控制系统为例,详述了如何应用Modbus RTU通讯协议以及检测方法,使得控制器之间的通讯变得更加简易和清晰。

如何用 S7-200 实现 Modbus 通信?

说明:

用下面的例程你可以在S7-200CPU之间建立一个简单的Modbus主-从通讯。

这个例子是关于Modbus功能码6的(写从站保持寄存器),也可以作为其他所支持的功能码的基本参数设置步骤:

1,2,3,4,5,15和16。

要求:

要使用Modbus协议必须先获得并在STEP7Micro/Win中安装指令库。

Modbus主站协议只被STEP7Micro/WinV4.0SP5及其以上版本支持。

∙1.硬件设置

∙2.参数匹配

∙3.指令库的存储地址

∙4.保持寄存器变量传输

1.硬件设置

例程中的Modbus通讯是在两个S7-200CPU的0号通讯口间进行的(最好每个CPU都有两个通讯口)。

在主站侧也可以用相应库文件"MBUS_CTRL_P1"和"MBUS_MSG_P1"通过1号通讯口通信。

通讯口1用Micro/WIN与PG或PC建立连接,两个CPU的通讯口0通过Profibus缆进行连接(电缆的针脚连接为3,3,8,8->见图01)。

另外,需要确定逻辑地M相连。

2.参数匹配

对于MODBUS通讯,主站侧需要程序库"MBUS_CTRL"和"MBUS_MSG",从站侧需要程序库"MBUS_INIT"and"MBUS_SLAVE"。

在Micro/WIN中您需要为主站和从站新建一个项目,程序与参数设置见图.02。

必须要保证主站与从站的“Baud”和“Parity”的参数设置要一致,并且程序块"MBUS_MSG"中的"Slave"地址要与程序块"MBUS_INIT"中的"Addr"所设置的一致(见图.02)。

在Micro/WIN“系统块”中设置的通讯口0的波特率与MODBUS协议无关("Mode"="1")。

下面的表格列出了程序块各个参数选项及其含义。

主站

MBUS_CTRL

 

MBUS_MSG

2)最大的地址取决于所用CPU的类型及其最大值。

3)参看STEP7Micro/WIN帮助:

“MODBUS从站协议的错误代码”。

 

MBUS_SLAVE

 

看STEP7Micro/WIN帮助:

“MODBUS从站协议的错误代码”。

3.库的存储地址

项目完成后必须要在Micro/WIN中定义库的存储地址,当定义完存储区后,要保证在任何情况下不能再被其它程序所使用(主站侧:

"DataPtr"+"Count"从站侧:

"HoldStart"+"MaxHol

d")。

4.保持寄存器值的传输

将程序下载到相应的CPU后,可以在状态表中给主站侧的V存储区赋值,然后从站侧监视数值的变化。

当主站的I0.0使能后,VW2中的内容就被发送到从站并写入从站的VW2。

保持寄存器值的传输见图.04。

指针"DataPtr"代表了被读的V区起始地址。

参数"Count"指定了被写入地址"Addr"="4xxxx"(保持寄存器)字的个数。

相应V存储区的变量将被写到保持寄存器启始地址"Addr"="40002"("RW"="1")中。

保持寄存器是以字为单位传输的,它与从站的V区地址对应。

指针"HoldStart"指定了与保持寄存器起始地址40001相对应的V存储区的初始地址。

可以按下面公式计算从站的V区目标指针:

2*(Addr-40001)+HoldStart=2*(40002-40001)+&VB0=&VB2

另外,要保证主站侧所要写入的数据区包含在"MaxHold"定义的数据区内:

MaxHold>=Addr-40001+Count=40002-40001+1=2

关于STEP7Micro/WINMOBDUS库的更多信息可以参看S7-200系统手册(EntryID1109582)和STEP7Micro/WIN帮助。

   

   如何在STEP7Micro/WIN中找到ModbusRTU协议和USS协议操作库?

   说明:

   在STEP7Micro/WIN中,ModbusRTU协议和USS协议操作库位于操作树的“库”文件夹中。

MODBUS函数库要求STEP7Micro/WIN为V3.2或更高版本。

   

   

   图1:

添加函数库

   

   这些库是附加函数库,并非组态软件STEP7Micro/WIN的组成部分。

   

   您如果需要使用ModbusRTU协议,必须购买“SIMATICSTEP7Micro/WINADDON:

FunctionLibraryV1.1(USS+MODBUS)forSTEP7Micro/WIN32”软件。

   

   这个可选附加函数库的订货号是6ES7830-2BC00-0YX0。

   

   安装顺序:

   先安装“STEP7Micro/WIN32ToolboxV1.0”(包括库),然后安装“STEP7Micro/WIN”。

   

   注意:

   这个函数库包含可以在STEP7Micro/WINV3.2中使用的ModbusRTU协议库和USS协议库。

   

   如果您安装了STEP7Micro/WINV4.0SP5或者更高版本,那么操作库中就会包含下列函数:

   

   ModbusRTUMasterV1.2对应端口0和端口1

   ModbusRTUSlaveV1.0对应端口0

   USSprotocolV2.3对应端口0和端口1

 

S7-200网络读写指令(NETR/NETW)

PPI协议是专门为S7-200开发的通信协议。

S7-200CPU的通信口(Port0、Port1)支持PPI通信协议,S7-200的一些通信模块也支持PPI协议。

Micro/WIN与CPU进行编程通信也通过PPI协议。

S7-200CPU的PPI网络通信是建立在RS-485网络的硬件基础上,因此其连接属性和需要的网络硬件设备是与其他RS-485网络一致的。

S7-200CPU之间的PPI网络通信只需要两条简单的指令,它们是网络读(NetR)和网络写(NetW)指令。

在网络读写通信中,只有主站需要调用NetR/NetW指令,从站只需编程处理数据缓冲区(取用或准备数据)。

PPI网络上的所有站点都应当有各自不同的网络地址。

否则通信不会正常进行。

可以用两种方法编程实现PPI网络读写通信:

∙使用NetR/NetW指令,编程实现

∙使用Micro/WIN中的InstructionWizard(指令向导)中的NETR/NETW向导

 

NetR/NetW指令要点

有关网络读写(NetR/NetW)指令的详细情况必须参考《S7-200系统手册》。

每条网络读写指令最多能够读或者写16个字节的数据;每个CPU内最多只能有8条网络读写指令同时激活,而网络读写指令的数目

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1