西门子电机6SL3120-1TE26-0AA3参数详细
1、寄存器是CPU内部存储单元,即寄存器是CPU的组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址等。
2、在CPU内部,累加器 (accumulator) 是一种寄存器,所有数学运算必须通过它进行传递和运算。
3、提到暂存器要从寄存器与存储器来讲:寄存器是CPU里的存储单元,与CPU离得近,所以CPU在运算时通常都会用寄存器当中转站。存储器是在CPU外部的存储器,例如,RAM,ROM。
暂存器顾名思义,就是暂时存放一定数量数据寄存器或存储器。例如,目标寄存器和结果寄存器都已有数据,需要第三个数据输入;编程时某一逻辑信号经常多次使用,中间结果需要暂时记忆
S7-200 寻址时,可以使用不同的数据长度。不同的数据长度表示的数值范围不同。S7-200 指令也分别需要不同的数据长度。
S7-200系列在存储单元所存放的数据类型有布尔型( BOOL)、整数型( INT )、实数型和字符串型四种。数据长度和数值范围如表6所列。
表1 数据长度和数值范围
数据类型
数据长度
字节 (8位值)
字 (16位值)
双字 ( 32位值)
无符号整数
0~255
0~FF
0~65535
0~FFFF
0~4294967295
0~FFFF FFFF
有符号整数
-128~+127
80~7F
-32768~+32767
8000~7FFF
-217483648~+2147483647
8000 0000~7FFF FFFF
实数IEEE32位
浮点数
+1.175495E-38~+3.402823E+
38(正数)
-1.175495E-38~-3.402823E+38
(负数)
● 实数的格式
实数(浮点数)由32位单精度数表示,其格式按照ANSI/IEEE 754-1985标准中所描述的形式。实数按照双字长度来存取。对于S7-200来说,浮点数**到小数点后第六位。因而当使用一个浮点数常数时,*多可以指定到小数点后第六位。
● 实数运算的精度
在计算中涉及到非常大和非常小的数,则有可能导致计算结果不**。
● 字符串的格式
字符串指的是一系列字符,每个字符以字节的形式存储。字符串的第一个字节定义了字符串的长度,也就是字符的个数。一个字符串的长度可以是0到254个字符,再加上长度字节,一个字符串的*大长度为255个字节。而一个字符串常量的*大长度为126字节。
● 布尔型数据(0或1)。
● S7-200CPU不支持数据类型检测
例如:可以在加法指令中使用VW100中的值作为有符号整数,同时也可以在异或指令中将VW100中的数据当作无符号的二进制数。
● S7-200提供各种变换指令,使用户能方便地进行数据制式及表达方式的变换
西门子S7系列可编程控制器分为S7-400、S7-300、S7-200三个系列,分别为S7系列的大、中、小型可编程控制器系统。S7-200系列可编程控制器有CPU21X系列,CPU22X系列,其中CPU22X型可编程控制器提供了4个不同的基本型号,常见的有CPU221,CPU222,CPU224和CPU226四种基本型号。
小型PLC中,CPU221价格低廉能满足多种集成功能的需要。CPU 222是S7-200家族中低成本的单元,通过可连接的扩展模块即可处理模拟量。CPU 224具有更多的输入输出点及更大的存储器。CPU 226和226XM是功能*强的单元,可完全满足一些中小型复杂控制系统的要求。四种型号的PLC具有下列特点:
(1)集成的24V电源
可直接连接到传感器和变送器执行器,CPU 221和CPU222具有180mA 输出。CPU224输出280mA,CPU 226、CPU 226XM输出400mA 可用作负载电源。
(2)高速脉冲输出
具有2 路高速脉冲输出端,输出脉冲频率可达20KHz,用于控制步进电机或伺服电机,实现定位任务。
(3)通信口
CPU 221、CPU222和CPU224具有1个RS-485通信口。CPU 226、CPU 226XM具有2个RS-485通信口。支持PPI、MPI通信协议,有自由口通信能力。
(4)模拟电位器
CPU221/222有1个模拟电位器,CPU224/226/226XM有2个模拟电位器。模拟电位器用来改变特殊寄存器(SMB28,SMB29)中的数值,以改变程序运行时的参数。如定时器、计数器的预置值,过程量的控制参数。
(5)中断输入允许以极快的速度对过程信号的上升沿作出响应。
(6)EEPROM 存储器模块(选件)
可作为修改与拷贝程序的快速工具,无需编程器并可进行辅助软件归档工作。
(7)电池模块
用户数据(如标志位状态、数据块、定时器、计数器)可通过内部的超级电容存储大约5 天。选用电池模块能延长存储时间到200天(10年寿命)。电池模块插在存储器模块的卡槽中。
(8)不同的设备类型
CPU 221~226 各有2种类型CPU,具有不同的电源电压和控制电压。
(9)数字量输入/输出点
CPU 221具有6个输入点和4个输出点;CPU 222具有8个输入点和6个输出点;CPU 224 具有14个输入点和10个输出点;CPU226/226XM 具有24个输入点和16个输出点。CPU22X主机的输入点为24V直流双向光电耦合输入电路,输出有继电器和直流(MOS型)两种类型。
(10)高速计数器
CPU 221/222有4个30KHz高速计数器,CPU224/226/226XM有6个30KHz的高速计数器,用于捕捉比CPU扫描频率更快的脉冲信号
随着建筑设计中楼宇智能化技术的发展,大型建筑群的供水系统也实现计算机的远程集中监控,以下介绍一个计算机监控的抽水系统,它采用VC++6.0可视化编程,通过计算机与PLC的串行通信,由PLC不断采集被控对象的状况参数,返回计算机,计算机按照控制程序方式,监控被控制对象的运行。
1.抽水系统的组成与功能
1.1.抽水系统的组成
(1)抽水系统可视化界面结构如图1;
(2)相应的数据库结构如图2;
(3)系统共设计有八个人机对话窗体,具体功能如下表1:
序号
窗体名称
窗 体 功 能
1
登陆
为进入系统的登陆窗体,实现对操作员工号与密码的安全检查
2
抽水监控界面
为系统运行主窗体,实现对抽水的监控功能,分别设置有抽水方式选种栏、状态显示栏、系统示意图等
3
抽水记录查询
为抽水记录查询窗体,记录开机操作员、关机操作员、抽水方式、启动时间、停止时间、抽水时间数据
4
故障记录查询
为故障记录查询窗体,记录故障发生时的故障电流值、故障类型、故障时间
5
操作人员管理
为操作人员管理窗体,对操作人员的工号和密码管理。
6
保护整定
为保护整定窗体,可整定速断电流值,过流电流值和时限
7
故障报警
为故障提示窗体
8
打印
打印窗体
(4)硬件配置
系统的硬件配置如图3所示,PLC用于开关量的输入与输出、电流数据输入,由PLC的Y0输出的开关量控制接触器KM的状态,从而实现对抽水泵工作电源控制;而Y0的状态由PLC的R0继电器控制,通过计算机远程置位和复位R0继电器,实现远程控制;在现场按钮SB1和SB2也可以对R0继电器置位和复位,实现就地合闸和分闸;K1和K2红外线接近开关分别作为满水和缺水的信号输入;抽水泵的工作电流由电流互感器变换为0-5A,再经电流变送器进一步变换为合适A/D输入的电流。 A/D转换后的数字量存放在专用的WX9中,供远程监控计算机的数据采集。
1.2.抽水监控系统的软件设计与功能
(1)抽水监控系统的软件程序流程图如图4所示。
(2)具有的电流速断和定时限过流保护功能,当计算机检测得到的电流数据大于速断电流整定值,则计算机瞬时发出分闸命令;如果大于过电流整定值,延时发出预告信号,报警后,在设定时间内不能恢复正常,计算机发出分闸命令。
(3)建立数据库,记录抽水系统开机、关机操作员的编号、分合闸的时间、抽水方式;故障时,记录保护动作时间、动作电流值和故障类型。
(4)抽水监控系统有具有手动,自动,定时三种抽水控制方式。选择手动时,计算机在系统启动时,直接发送合闸或分闸指令;选择自动方式时,系统启动后,计算机采集缺水信号,若接到缺水信号将发送合闸指令,开始抽水后,等待满水信号,若满水,则发送分闸指令;当选择定时方式时,系统等待设置的启动时间到,自动向抽水泵发送合闸指令;同样系统也可以等待设置的停止时间到,自动向抽水泵发送分闸指令。
(5)操作员进入系统和退出系统需要进行登陆检查,采用安全措施进入和退出系统。登陆系统后,操作员可以修改自己的密码,只有管理员有权注册新的操作员。
(6)系统运行的仿真示意图,实时显示抽水系统的工作状态,在计算机监控窗体增加了灯光和流程动画,直观地显示系统的运行状态,更好展现可视化的效果。
2.抽水监控系统设计的技术关键
2.1抽水监控系统的核心程序
抽水监控系统的核心程序为系列函数:发出通信指令函数,如其中读x2状态的函数Read_x2();字符串转换并发送函数Sendbbbbbb(Cbbbbbb m_strSend);接收信息并转换字符串函数Readbbbbbb ()等。
计算机发出查询x2状态通信帧时,调用Sendbbbbbb(Cbbbbbb m_strSend)函数,将通信帧转换数据类型,再用SetOutput函数发送出去;PLC接收到信息后,自动返回x2的状态,计算机监测到输入缓冲区字符数到指定个数,调用Readbbbbbb()函数,接收并转换为Cbbbbbb格式的字符串。
void CCSXTAView::Read_x2()
{ m_com1.SetOutBufferCount(0);
m_com1.SetInBufferCount(0);
Sendbbbbbb("%01#RCSR0000**\r\n");
Sleep(100);
m_in=m_com1.GetInBufferCount();
Readbbbbbb();
x2=m_strRead;
x2=x2.Mid(6,1);
}
void CCSXTAView::Sendbbbbbb(Cbbbbbb m_strSend)
{ char TxData[100];
Cbbbbbb m_strSend;
m_strSend=“%01#WCSR00021**\r\n”;
int Count = m_strSend.GetLength();
for(int i = 0; i < Count; i++)
TxData[i] = m_strSend.GetAt(i);
CByteArray array;
array.RemoveAll();
array.SetSize(Count);
for(i = 0; i < Count; i++)
array.SetAt(i, TxData[i]);
m_MSComm1.SetOutput(COleVariant(array));//发送
}
void CCSXTAView::Readbbbbbb ()
{
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组 An
//8-bit integerthat is not signed.
Cbbbbbb strtemp, str;
str.Empty();
strtemp.Empty();
variant_inp = m_MSComm1.Getbbbbb();
//读缓冲区
safearray_inp = variant_inp;
//VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize();
//得到有效数据长度
for(k=0;k<len;k++)
safearray_inp.Gebbbement(&k,rxdata+k);
//转换为BYTE型数组
for(k=0;k<len;k++)
//将数组转换为Cbbbbbb型变量
{ BYTE bt=*(char*)(rxdata+k);
strtemp.bbbbat("%c",bt);
//将字符送入临时变量strtemp存放
str = str + strtemp;
//转换完成后赋值给字符串str
}
}
2.2计算机与PLC的通信帧
抽水监控系统的设计关键之一是计算机与PLC的通信帧,PLC的通信系统的基本协议规定通信帧有严格的格式,本系统采用松下的PLC。上述Read_x2()指令函数中的"%01#RCSR0000**\r\n"为计算机发出读PLC的x2状态的通信帧,功能说明如下表2:
通信帧
%
01#
RCS
R0000
**
\r\n
说明
通信标志
地址
命令码,读接点
接点编号
效验码,不效验时用“*”代替
结束码
2.3计算机与PLC的串行口连接
计算机与PLC的RS-232串行口有9和25个脚两种,而每个脚位的功能各有不同,正确连线才能使通信成功。计算机和PLC的串行口一般为9脚,其定义和功能如下表3:
脚位
PC机RS-232,其9支脚位的定义
PLC上的RS-232,其9支脚位的定义
简写
意 义
简写
意 义
1
CD
载波侦测
FG
保护接地
2
RXD
接收字符
SD
传送字符
3
TXD
传送字符
RD
接收字符
4
DTR
数据端备妥
RS
要求传送
5
CND
地线
CS
清除以传送
6
DSR
数据备妥
未用
7
RTS
要求传送
SG
地线
8
CTS
清除以传送
CD
载波侦测
9
RI
响铃侦测
计算机与PLC串行口连接通常有两种,基于连接和基于不连接的信号接线方式如图5所示:
2.4运用VC++6.0语言编程实现对计算机的串行口的读写
VC++6.0语言对计算机硬件有较好的控制能力,运用MSComm控件对计算机的串行口的读写控制。首先要对MSComm控件(假设名称为MSComm1,其对应的控制变量为m_MSComm1)的几个属性进行设置。
m_MSComm1.SetCommPort(1);//设置通信端口
m_MSComm1.SetSettings("9600,n,8,1");
//设置通信的波特率、效验方式、数据位、停止位
m_MSComm1.SetSthreshold(1);//设置要接受的字符数,当输入缓冲区字符书达到设置值,触发OnComm事件
m_MSComm1.SetPortOpen(TRUE);//打开通信端口
设置各项属性后,运用MSComm控件对串行口进行读写,将读到的内容写入输出缓冲区,再将输入缓冲区的信息读到程序去,计算机依据程序自动完成工作。
应用m_MSComm1.Getbbbbb()和m_MSComm1. SetOutput()属性就可以将计算机输入缓冲区的信息读到程序中和把程序中的信息输出到计算机的输出缓冲区。
VC++6.0语言的m_MSComm1.Getbbbbb()和m_MSComm1. SetOutput()属性发出和接收的是ColeSafeArray型数据,发送前要用Sendbbbbbb(Cbbbbbb m_strSend)实现转换,接收后要用Readbbbbbb ()实现转换为Cbbbbbb字符串。
PLC发出命令帧后,读取PLC的返回帧需一定的时间,否则返回帧的信息还未到达输入缓冲区,程序执行不正确的信息,所以在读返回帧的程序前,设置等待时间,使用Sleep()让程序处于休眠状态等待完整的回帧的信息。
2.4.PLC程序的配置
1)在PLC程序要设置波特率、奇偶效验方式、数据位、停止位为“ 9600,n,8,1”,与计算机程序一致。
2)在PLC程序要设置为允许计算机连接。
3)将程序下载到PLC后,还要将PLC断电再接通电,通信设置才生效。
3.结束语:
运用计算机的**语言与计算机硬件控制、计算机与PLC通信等技术,实现计算机远程监控系统的设计,本文介绍的控制系统可作为一个控制模块嵌入到大型的楼宇监控系统中;也可以根据企业生产过程的控制对象,修改相关的一些参数,作为工厂的在线监控系统。