西门子S7200模拟量编程Word下载.docx
- 文档编号:17808982
- 上传时间:2022-12-10
- 格式:DOCX
- 页数:32
- 大小:1.45MB
西门子S7200模拟量编程Word下载.docx
《西门子S7200模拟量编程Word下载.docx》由会员分享,可在线阅读,更多相关《西门子S7200模拟量编程Word下载.docx(32页珍藏版)》请在冰豆网上搜索。
10V电流输出0~20mA
电压-32000~+32000电流0~32000
分辨率电流
电压12位电流11位
下表说明如何用DIP开关设置EM235扩展模块,开关1到6可选择输入模拟量的单/双极性、增益和衰减。
EM235开关
单/双极性选择
增益选择
衰减选择
SW1
SW2
SW3
SW4
SW5
SW6
ON
单极性
OFF
双极性
X1
X10
X100
无效
由上表可知,DIP开关SW6决定模拟量输入的单双极性,当SW6为ON时,模拟量输入为单极性输入,SW6为OFF时,模拟量输入为双极性输入。
SW4和SW5决定输入模拟量的增益选择,而SW1,SW2,SW3共同决定了模拟量的衰减选择。
根据上表6个DIP开关的功能进行排列组合,所有的输入设置如下表:
满量程输入
SW1
SW3
SW4
SW5
SW6
OFF
0到50mV
μV
0到100mV
25μV
0到500mV
125uA
0到1V
250μV
0到5V
0到20mA
5μA
0到10V
±
25mV
50mV
25μV
100mV
50μV
250mV
125μV
500
1V
500μV
5V
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,测得当压力为时,压力变送器的电流应为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中的应用原理
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
以上版本的编程软件,而且须安装Step7-Micro/WIN32
Instruction
Library(指令库)。
RTU功能是通过指令库中预先编好的程序功能块实现的。
RTU协议在S7-200中应用的基本过程
(1)
首先检查S7-200控制系统中所用Micro/WIN的软件版本,应当是Step7-Micro/WIN
以上版本。
(2)
检查Micro/WIN的指令树中是否存在Modbus
RTU从站指令库(图1),库中应当包括MBUS_INIT和MBUS_SLAVE两个子程序。
如果没有,须安装Micro/WIN32
Library(指令库)软件包,如图1所示。
图1
指令树中的库指令(3)
编程时使用—调用子程序MBUS_INIT进行初始化,使用—调用研究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
Library(指令库)需要分配库指令数据区(Library
Memory)。
库指令数据区是相应库的子程序和中断程序所要用到的变量存储空间。
如果在编程时不分配库指令数据区,编译时会产生许多相同的错误。
由子程序参数HoldStart和MaxHold指定的保持寄存器区,是在S7-200
CPU的V数据存储区中分配,此数据区不能和库指令数据区有任何重叠,否则在运行时会产生错误,不能正常通讯。
注意Modbus
中的保持寄存器区按“字”寻址,即MaxHold规定的是VW而不是VB的个数。
3
RTU协议测试包含Modbus
RTU从站指令库的项目编译、下载到CPU中后,在编程计算机(PG/PC)上运行一些Modbus测试软件可以检验S7-200的Modbus
RTU通讯是否正常,这对查找故障点很有用。
测试软件通过计算机串口(RS-232)和PC/PPI电缆连接CPU。
(以ModScan32测试软件为例作以检测说明)
测试软件
测试软件ModScan32如图3所示。
图3
RTU测试软件:
ModScan32图3中,ModScan32测试软件的画面中相关参数意义如下:
Address:
ModBus中存储区的起始地址;
Device
Id:
PLC
ModBus的端口地址;
Length:
参与通讯的V存储区字的长度。
参数设置对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-200CPU之间建立一个简单的Modbus主-从通讯。
这个例子是关于Modbus功能码6的(写从站保持寄存器),也可以作为其他所支持的功能码的基本参数设置步骤:
1,2,3,4,5,15和16。
要求:
要使用Modbus协议必须先获得并在STEP7Micro/Win中安装指令库。
Modbus主站协议只被STEP7Micro/WinSP5及其以上版本支持。
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”的参数设置要一致,并且程序块"
中的"
Slave"
地址要与程序块"
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存储区赋值,然后从站侧监视数值的变化。
当主站的使能后,VW2中的内容就被发送到从站并写入从站的VW2。
保持寄存器值的传输见图.04。
指针"
代表了被读的V区起始地址。
参数"
指定了被写入地址"
4xxxx"
(保持寄存器)字的个数。
相应V存储区的变量将被写到保持寄存器启始地址"
40002"
("
RW"
)中。
保持寄存器是以字为单位传输的,它与从站的V区地址对应。
指定了与保持寄存器起始地址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为或更高版本。
图1:
添加函数库
这些库是附加函数库,并非组态软件STEP7Micro/WIN的组成部分。
您如果需要使用ModbusRTU协议,必须购买“SIMATICSTEP7Micro/WINADDON:
FunctionLibrary(USS+MODBUS)forSTEP7Micro/WIN32”软件。
这个可选附加函数库的订货号是6ES7830-2BC00-0YX0。
安装顺序:
先安装“STEP7Micro/WIN32Toolbox”(包括库),然后安装“STEP7Micro/WIN”。
注意:
这个函数库包含可以在STEP7Micro/WIN中使用的ModbusRTU协议库和USS协议库。
如果您安装了STEP7Micro/WINSP5或者更高版本,那么操作库中就会包含下列函数:
ModbusRTUMaster对应端口0和端口1
ModbusRTUSlave对应端口0
USSprotocol对应端口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条网络读写指令同时激活,而网络读写指令的数目没有限制。
只有通信主站能够使用网络读写指令。
缺省情况下,S7-200CPU的通信口设置为从站模式。
因此在编程时,需要把通信口设置为通信主站模式。
在一个PPI网络中,与一个从站通信的主站的个数并没有限制,但是一个网络中主站的个数不能超过32个。
主站既可以读写从站的数据,也可以读写主站的数据。
也就是说,S7-200作为PPI主站时,仍然可以作为从站响应其他主站的数据请求。
一个主站CPU可以读写网络中任何其他CPU的数据。
由于串行通信的特点,通信数据的接收(或者发送)是不能与PLC程序的扫描周期配合的。
所有的通信活动都需要PLC操作系统的管理,网络读写(包括其他类似的通信指令)指令只是告诉操作系统有需要处理的通信任务。
因此,网络读写指令采取通信数据缓冲区的方式,在操作系统的通信管理功能与PLC的用户程序之间交
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西门子 S7200 模拟 编程