热门搜索:
西门子6ES7216-2AD23-0XB8
2、在使用MicroWin software 创建项目之前,确认USS库文件已经安装:
3、创建一个例程:
3.1 设置通讯接口
本例程使用PC/PPI电缆。
3.2 建立PC和PLC之间的连接
西门子6ES7216-2AD23-0XB8
“双击刷新”搜索到PLC后,点击”确认”。
3.3 用电缆将S7-200 Port 0端口与V20的RS485接口相连(注意端口连接规则:V20的
3.4 变频器参数设置:
V20 可以通过选择连接宏Cn010实现USS控制,也可以通过直接更改变频器参数的方法来实现。参数设置如下表所示:
表一:
EN使能:每次改变通讯状态都应该执行一次初始化指令。所以EN信号应该通过边沿检测元件脉冲激活。
Active:激活驱动地址举例:
西门子6ES7216-2AD23-0XB8
状态表:
功能块定义:
表二:Error 信息
问题3:S7-200 CPU内的程序是否具有掉电保持特性?
问题4:S7-200 CPU内部的数据的掉电保持特性?
问题5:S7-200 CPU内部数据的工作顺序?
问题6:S7-200 CPU电池卡的使用注意事项?
以上为两种电池卡以及所在插槽位置。
问题7:S7-200 CPU内EEPROM的使用方法?
MB0—MB13如果在系统块中设置成掉电保持区域,如图2红框中所示,并将系统块下载到CPU之后,则这14个字节的数据在掉电的瞬间会将数值写入EEPROM中,如果掉电时间**过**级电容和电池的保持时间之后,再上电时,CPU会将EEPROM中存储的数据数值写回到RAM中对应的存储区,实现*保持数据的目的。
2、数据块中定义的数据,如图3所示,当下载数据块的时候,同时会将定义的数据下载到EEPROM中,这样,当掉电时间**过**级电容和电池的保持时间之后,再上电时,CPU会将EEPROM中存储的数据块中定义的数据数值写回到RAM中对应的存储区,实现*保持数据的目的。也就是恢复成数据的初始设置值。
西门子6ES7216-2AD23-0XB8
3、使用SMB31和SMW32控制字来实现将V区的数据存到EEPROM中
采用下列步骤来保存或者写入V存储区中的一个特定数值:
注意:如果在数据块中定义了某地址的数据,而又使用这种办法存储同样地址的数据,则当CPU内**级电容或电池没电时,CPU再上电时将采用SMB31和SMW32存储的数据。
问题8:EEPROM写入次数的统计?
问题9:不使用数据块的方法,如何在程序中实现不止一个V区数据的存储?
由于SM31.7在每次操作结束之后都自动复位,因而不能使用它作为*二次触发操作的条件。
P+对3、N-对8),如下图所示:
参数
描述
Cn010默认值
实际设置
备注
P0700[0]
选择命令源
5
5
RS485为命令源
P1000[0]
选择频率
5
5
RS485为速度设定值
P2023
RS485协议选择
1
1
USS协议
P2010[0]
USS/MODBUS波特率
8
6
波特率为9600bps
P2011[0]
USS地址
1
3
变频器的USS地址
P2012[0]
USS PZD长度
2
2
PZD部分的字数
P2013[0]
USS PKW长度
127
127
PKW部分字数可变
P2014[0]
USS/MODBUS报文间断时间
500
0
接收数据时间
3.5 使用USS协议的初始化模块初始化S7-200的PORT0端口:
Mode:用这个USS输入值选择通讯协议。
1:为端口0*USS协议,并启用该协议。
0:为端口0*PPI协议,并禁止USS协议。
Baud: 波特率:9600,19200…115200。
Active:激活驱动地址。
Done:当USS_INIT 指令执行完成后,Done=1。
Error:指令执行的结果,如果有错误,显示错误代码。
3.6 使用USS——CTRL模块来控制USS地址为3的变频器,为了运行变频器需要按照表一设置参数:
EN:通常情况总是激活。
RUN:指示驱动为启用(1),或禁止(0)。
OFF2:允许V20自由停车。
OFF3:允许V20快速停止。
F _ACK:V2**复位。
DIR:V20转动方向(0:逆时针;1:顺时针)。
Drive:V20地址 0-31。
Speed:速度给定值,以全速的百分比给出 (-200.0~~200.0%,负值时,V20反向)。
Resp_R:轮询V20,扫描时=1,并更新下面值。
Error:错误字节,参见表:USS指令执行错误。
Status:V20返回状态值。
Speed:V20速度,(-200.0~~200.0%)。
Run_EN:V20运行状态(1:运行;0:停止)。
D_DIR:V20转动方向(0:逆时针;1:顺时针)
Inhibit:V20禁止位状态。 (0:启用;1:禁止)。要清除禁止位,必须将Fault清零,
RUN,OFF2, OFF3输入也要清零。
Fault:指示故障状态。根据V2**表确认故障。故障排除后,置位F _ACK使Fault
清零。
Error代码
说明
0
没有错误
1
驱动未响应
2
检测到驱动响应中存在校验和错误
3
检测到驱动响应中存在奇偶校验错误
4
由于用户程序干扰导致出错
5
尝试执行了无效命令
6
提供的驱动地址无效
7
该通讯接口不能实现USS协议
8
该通讯接口正在忙于处理指令
9
驱动速度输入溢出
10
驱动响应的长度不正确
11
驱动响应的首字符不正确
12
驱动响应的长度字符不正确
13
驱动响应错误
14
给出的DB_PTR地址不正确
15
给出的参数号不正确
16
选择了无效的协议
17
启用USS:不允许更改
18
*了无效的波特率
19
无通讯:驱动未激活
20
驱动响应中的参数或值不正确
回答:S7-200 CPU内的程序块下载时,会同时下载到EEPROM中,也就是说程序下载后,将*保持。同样,系统块和数据块下载时,也会同时下载到EEPROM中。
回答:S7-200系统手册*四章——“PLC基本概念”一章中“理解S7--200如何保存和存储数据”一节详细介绍了S7-200 CPU内数据的掉电保持特性,建议用户仔细阅读。
S7-200 CPU内的数据分为RAM区和EEPROM区。
其中,RAM区数据需要CPU内置的**级电容或者外插电池卡才能实现掉电保持特性。
对于CPU221和CPU222的内置**级电容,能提供典型值约50小时的数据保持。
对于CPU224,CPU224XP,CPU224XPsi和CPU226的内置**级电容,能提供典型值约100小时的数据保持。
**级电容需要在CPU上电时充电。为达到上述指标的数据保持时间,需要连续充电至少24小时。
当该时间不够时,可以购买电池卡,以获得更长时间的数据保持时间。
EEPROM区能实现数据*保持,不依靠**级电容或者电池就可以保持数据。
回答:S7-200 CPU一上电后,CPU先去检查RAM区域中的数据,如果在**级电容或者电池有电的情况下,数据并未丢失,则使用该RAM区的数据;如果**级电容或者电池没电了,导致数据丢失,则CPU去读EEPROM中相应的区域(包含数据块中的数据定义内容),如果在EEPROM中存有*保持的数据,则CPU将EEPROM中的数据写回到RAM区中,再进行下面的工作。
如果EEPROM中也没有对应存储区的数据了,则该存储区的数据将变成0。
回答:新版S7-200 CPU电池卡有两种型号。
对于CPU221和CPU222,由于其中没有实时时钟,则对应的为时钟电池卡,订货号为:6ES7297--1AA23--0XA0。
对于CPU224,CPU224XP,CPU224XPsi和CPU226,电池卡仅提供电池功能,订货号为:6ES7 291--8BA20--0XA0,该款电池卡型号又叫做BC293。
电池卡的寿命典型值约为200天,当插上电池卡后,如果CPU处于工作状态或者**级电容有电的情况下,并不消耗电池卡的电量。当电池卡的电量消耗完毕之后,该电池卡就报废了。
S7-200电池卡不能充电,使用完毕就不能再用了,只能购买新的电池卡了。
S7-200没有检测电池卡内剩余电量的状态位和这种功能。
新版S7-200 CPU电池卡不能用于老CPU,即订货号为6ES7xxx-xxx21-0XB0和6ES7xxx-xxx22-0XB0以及更老版本的CPU。
图1
电池卡的使用完整限制条件,请参考《S7-200系统手册》附录A 技术规范—可选卡件一节。
回答:EEPROM的写入分为如下几种情况:
1、MB0—MB13的设置,只需要在系统块—断电数据保持中设置即可。
默认情况下,系统块设置如下图蓝框中所示,即MB14—MB31,这些区域没有对应的EEPROM区域,无须考虑EEPROM写入次数限制。
图2
注意:实现该功能一定要将修改过的系统块下载到CPU中。
注意:实现该功能一定要将定义好数据的数据块下载到CPU中。
图3
特殊存储器字节31 (SMB31)命令S7-200将V存储区中的某个值复制到*存储器的V存储区,置位SM31.7提供了初始化存储操作的命令。特殊存储器字32 (SMW32)中存储所要复制数据的地址。如图4为S7-200系统手册内关于SMB31和SMW32的使用说明。
图4
1. 将要保存的V存储器的地址装载到SMW32中。
2. 将数据长度装载入SM31.0和SM31.1。具体含义如图4所示。
3. 将SM31.7置为1。
图5
回答:每次下载程序块/数据块/系统块或者执行一次SMB31.7置位的操作都算作对EEPROM的一次写操作,所以请注意在程序中一定不要每周期都调用SMB31/SMW32用于将数据写入EEPROM内,否则CPU将很快报废。
回答:由于SMB31/SMW32一次较多只能送入一个V区双字给EEPROM区域,因而当有**过一个双字的数据需要送入EEPROM中时,需要程序配合实现。具体操作方法可参照如下的例子,即使用SMB31/SMW32送完一个数据(字节/字/双字)之后,通过一个标志位(如M0.0)来触发下一个SMB31/SMW32操作,之后需要将上一个标志位清零,以用于下一次的存储数据的操作。
以上程序仅供参考。