siemens/西门子授权合作伙伴
全新原装 质量保证 价格优势
公司大量现货!!!
【同样的价格、同样的品牌、给您不一样的服务】
长沙?励自动化设备有限公司(西门子系统集成商)长期销售西门子S7-200/300/400/1200PLC、数控系统、变频器、人机界面、触摸屏、伺服、电机、西门子电缆等,并可提供西门子维修服务,欢迎来电垂询
联系人: 张亮 (销售经理)
手机 : 13548747710
QQ : 809118149
地址:长沙市岳麓区雷锋大道468号金科**城16-1603室
产品 | |
商品编号(市售编号) | 6ES7212-1HE40-0xB0 |
产品说明 | SIMATIC S7-1200, CPU 1212C, COMPACT CPU, DC/DC/RLY, onBOARD I/O: 8 DI 24V DC; 6 DO RELAY 2A; 2 AI 0 - 10V DC, POWER SUPPLY: DC 20.4 - 28.8 V DC, PROGRAM/DATA MEMORY: 75 KB |
产品家族 | CPU 1212C |
产品生命周期 (PLM) | PM300:有效产品 |
价格数据 | |
价格组 / 总部价格组 | SK / 212 |
列表价(不含增值税) | 显示价格 |
您的单价(不含增值税) | 显示价格 |
金属系数 | 无 |
交付信息 | |
出口管制规定 | AL : N / ECCN : EAR99H |
工厂生产时间 | 12 天 |
净重 (Kg) | 0.354 Kg |
产品尺寸 (W x L X H) | 未提供 |
包装尺寸 | 10.40 x 10.70 x 8.80 |
包装尺寸单位的测量 | CM |
数量单位 | 1 件 |
包装数量 | 1 |
其他产品信息 | |
EAN | 4047623402718 |
UPC | 未提供 |
商品代码 | 85371091 |
LKZ_FDB/ CatalogID | ST72 |
产品组 | 4509 |
原产国 | 德国 |
高速计数器
S7-1200 CPU提供了**多6个(1214C)高速计数器,其独立于CPU的扫描周期进行计数。可测量的单相脉冲频率**高为100KHz,双相或A/B相**高为30KHz,除用来计数外还可用来进行频率测量,高速计数器可用于连接增量型旋转编码器,用户通过对硬件组态和调用相关指令块来使用此功能。
2高速计数器工作模式
高速计数器定义为5种工作模式
- 计数器,外部方向控制。
- 单相计数器,内部方向控制。
- 双相增/减计数器,双脉冲输入。
- A/B相正交脉冲输入。
- 监控PTO输出。
每种高速计数器有两种工作状态。
- 外部复位,无启动输入。
- 内部复位,无启动输入。
所有的计数器无需启动条件设置,在硬件向导中设置完成后下载到CPU中即可启动高速计数器,在A/B相正交模式下可选择1X(1倍) 和4X(4倍)模式,高速计数功能所能支持的输入电压为24V DC,目前不支持5V DC的脉冲输入,表1列出了高速计数器的硬件输入定义和工作模式
描述 | 输入点定义 | 功能 | ||||
HSC | HSC1 | 使用CPU集成I/O或信号板或监控PTO0 | I0.0 | I0.1 | I0.3 | |
I4.0 | I4.1 | |||||
PTO 0 | PTO 0 方向 | |||||
HSC2 | 使用CPU集成I/O或监控PTO0 | I0.2 | I0.3 | I0.1 | ||
PTO 1 | PTO 1 方向 | |||||
HSC3 | 使用CPU集成I/O | I0.4 | I0.5 | I0.7 | ||
HSC4 | 使用CPU集成I/O | I0.6 | I0.7 | I0.5 | ||
HSC5 | 使用CPU集成I/O或信号板 | I1.0 | I1.1 | I1.2 | ||
I4.0 | I4.1 | |||||
HSC6 | 使用CPU集成I/O | I1.3 | I1.4 | I1.5 | ||
模式 | 单相计数,内部方向控制 | 时钟 | 计数或频率 | |||
复位 | 计数 | |||||
单相计数,外部方向控制 | 时钟 | 方向 | 计数或频率 | |||
复位 | 计数 | |||||
双相计数,两路时钟输入 | 增时钟 | 减时钟 | 计数或频率 | |||
复位 | 计数 | |||||
A/B相正交计数 | A相 | B相 | 计数或频率 | |||
Z相 | 计数 | |||||
监控PTO输出 | 时钟 | 方向 | 计数 |
表1 高速计数器硬件输入定义与工作模式
并非所有的CPU都可以使用6个高速计数器,如1211C只有6个集成输入点,所以**多只能支持4个(使用信号板的情况下)高速计数器。
由于不同计数器在不同的模式下,同一个物理点会有不同的定义,在使用多个计数器时需要注意不是所有计数器可以同时定义为任意工作模式。
高速计数器的输入使用与普通数字量输入相同的地址,当某个输入点已定义为高速计数器的输入点时,就不能再应用于其它功能,但在某个模式下,没有用到的输入点还可以用于其它功能的输入
监控PTO的模式只有HSC1和HSC2支持,使用此模式时,不需要外部接线,CPU在内部已作了硬件连接,可直接检测通过PTO功能所发脉冲。
3高速计数器寻址
CPU将每个高速计数器的测量值,存储在输入过程映像区内,数据类型为32位双整型有符号数,用户可以在设备组态中修改这些存储地址,在程序中可直接访问这些地址,但由于过程映像区受扫描周期影响,在一个扫描周期内,此数值不会发生变化,但高速计数器中的实际值有可能会在一个周期内变化,用户可通过读取外设地址的方式,读取到当前时刻的实际值。以ID1000为例,其外设地址为“ID1000:P”。表2 所示为高速计数器寻址列表
高速计数器号 | 数据类型 | 默认地址 |
HSC1 | DINT | ID1000 |
HSC2 | DINT | ID1004 |
HSC3 | DINT | ID1008 |
HSC4 | DINT | ID1012 |
HSC5 | DINT | ID1016 |
HSC6 | DINT | ID1020 |
表1 高速计数器寻址
4频率测量
S7-1200 CPU除了提供计数功能外,还提供了频率测量功能,有3种不同的频率测量周期:1.0秒,0.1秒和0.01秒,频率测量周期是这样定义的:计算并返回新的频率值的时间间隔。返回的频率值为上一个测量周期中所有测量值的平均,无论测量周期如何选择,测量出的频率值总是以Hz(每秒脉冲数)为单位。
5高速计数器指令块
高速计数器指令块,需要使用指定背景数据块用于存储参数。图1所示为高速计数器指令块
图1高速计数器指令块
表3所示为高速计数器指令块参数说明
HSC (HW_HSC) | 高速计数器硬件识别号 |
DIR (BOOL) | TRUE =使能新方向 |
CV (BOOL) | TRUE = 使能新初始值 |
RV (BOOL) | TRUE = 使能新参考值 |
PERIODE (BOOL) | TRUE = 使能新频率测量周期 |
NEW_DIR (INT) | 方向选择1=正向 |
0=反向 | |
NEW_CV (DINT) | 新初始值 |
NEW_RV (DINT) | 新参考值 |
NEW_PERIODE (INT) | 新频率测量周期 |
表1 高速计数器指令块参数
6应用举例
为了便于理解如何使用高速计数功能,通过一个例子来学习组态及应用。
假设在旋转机械上有单相增量编码器作为反馈,接入到S7-1200 CPU,要求在计数25个脉冲时,计数器复位,并重新开始计数,周而复始执行此功能。
针对此应用,选择CPU 1214C,高速计数器为:HSC1。模式为:单相计数,内部方向控制,无外部复位。据此,脉冲输入应接入I0.0,使用HSC1的预置值中断(CV=RV)功能实现此应用。
组态步骤:
- 先在设备与组态中,选择CPU,单击属性,激活高速计数器,并设置相关参数。此步骤必须实现执行,1200的高速计数器功能必须要先在硬件组态中激活,才能进行下面的步骤
- 添加硬件中断块,关联相对应的高速计数器所产生的预置值中断
- 在中断块中添加高速计数器指令块,编写修改预置值程序,设置复位计数器等参数
- 将程序下载,执行功能
1硬件组态
选中CPU如图2
图2选中CPU
图3所示为选择属性打开组态界面
图3 选择属性打开组态界面
激活高速计数功能如图4
图4 激活高速计数功能
计数类型,计数方向组态如图5所示
图5 计数类型,计数方向
1 此处计数类型分为3种,Axis of motion(运动轴),Frequency(频率测量),Counting(计数)。这里选择Counting
2 模式分为4种:Single phase(单相), Two phase(双相), AB Quadrature 1X(A/B相正交1倍速), AB Quadrature 4X(A/B相正交4倍速)。这里择Single phase
3 输入源,这里使用的为CPU集成输入点。
4 计数方向选择,这里选用User program (internal direction control)(内部方向控制)
5初始计数方向。这里选择Count up(向上计数)
初始值及复位组态如图6
图6 初始值及复位组态
预置值中断组态如图7
图7 预置值中断组态
图8 添加硬件中断
组态添加的硬件中断,如图8
图8 组态添加的硬件中断
地址分配与硬件识别号如图9
图9 地址分配与硬件识别号
至此硬件组态部分已经完成,下面进行程序编写
2程序编写
将高速计数指令块添加到硬件中断中
图10 打开硬件中断块 图11 添加高速计数器
图12 定义高速计数器背景数据块
程序视图如图13
图13 程序视图
1 这里就是图9中系统指定的高速计数器硬件识别号,这里填1
2 “1”为使能更新初值
3 “0”新初始值为0
至此程序编制部分完成,将完成的组态与程序下载到CPU后即可执行,当前的计数值可在ID1000中读出 ,关于高速计数器指令块,若不需要修改硬件组态中的参数,可不需要调用,系统仍然可以计数。
硬件S7-1200 常问问题
1.1通过S7-1200 集成以太网接口**多能建立多少个通信连接?
答:15个,分别是: 3 个用于 HMI,1 个用于编程设备, 8 个用于用户程序中的以太网指令, 3 个用于S7连接(S7-1200只能做Server)。
1.2串口模块支持那些通信协议?
答:支持点到点基于字符的串口通信(ASCII),USS协议(RS 485),Modbus RTU 协议(主/从)。
1.3 S7-1200**多支持几个运动轴的控制?
答:2个。由于目前CPU 提供**多2个PTO输出。
1.4 S7-1200在扩展模块上有何限制?
答:由CPU类型决定,**多可扩展8个信号模块(CPU1211C 不能扩展,CPU1212C可扩展2个,CPU1214C可扩展8个)和3个通信模块,另外可在CPU上插入1个信号板。
1.5 MP277/377面板是否可以与S7-1200连接?
答:可以。可以在WinCC flexible 2008 SP1 中使用SIMATIC S7 300/400的驱动建立与S7-1200的连接,但是该功能没有经过系统测试,功能上并没有保证。在WinCC flexible 2008的SP2有可能增加相应的驱动。在通信上也有一些功能限制,它不支持:符号的DB块;数据类型S5TIME和DATE_AND_TIME,还有一些SIMATIC S7-1200新的数据类型;通信的循环模式;S7 诊断消息。使用WinCC flexible 2008 SP1中建立通信连接时,如图1所示在通信驱动中选择“SIMATIC S7 300/400”,在接口中选择“以太网”,访问点应为“S7ONLINE”,将PLC扩展插槽设为“1”,去除“循环操作”的选项。
图1设置通信连接
1.6 S7-1200 如何计算外部电源
答:首先确定CPU可为组态提供多少电流,每个 CPU 都提供了 5 VDC 和 24 VDC 电源:
连接了扩展模块时,CPU 会为这些扩展模块提供 5 VDC 电源。 如果扩展模块的 5
VDC 功率要求超出 CPU 提供的,则必须拆下一些扩展模块直到其电流消耗在要求的范围内。
每个 CPU 都有一个 24 VDC 传感器电源,该电源可以为本地输入点或扩展模块上的
继电器线圈提供 24 VDC。 如果 24 VDC 的电流消耗要求超出 CPU 的输出,则可以增加外部 24 VDC 电源为扩展模块供应 24 VDC。
警告:将外部 24 VDC 电源与 DC 传感器电源并联会导致这两个电源之间有冲突,因为每个电源都试图建立自己**的输出电压电平。该冲突可能使其中一个电源或两个电源的寿命缩短或立即出现故障,从而导致 PLC系统的运行不确定。 运行不确定可能导致死亡、人员重伤和/或财产损失。CPU 上的 DC 传感器电源和任何外部电源应分别给不同位置供电。 允许将多个公共端连接到一个位置。
PLC 系统中的一些 24 V 电源输入端口是互连的,并且通过一个公共逻辑电路连接多个 M端子。 在指定为非隔离时,CPU 的 24 VDC 电源输入、SM 继电器线圈电源输入以及非隔离模拟电源输入即是一些互连电路。 所有非隔离的 M 端子必须连接到同一个外部参考电位。
警告:将非隔离的 M 端子连接到不同参考电位将导致意外的电流,该电流可能导致 PLC 和连接设备损坏或运行不确定。这种损坏或不确定运行可能导致死亡、人员重伤和/或财产损失。务必确保 PLC 系统中的所有非隔离 M 端子都连接到同一个参考电位。
为了更清晰了解这个问题,下面举了个例子: 一个 CPU 1214C AC/DC/继电器型、3 个 SM 1223 8 DC 输入/8 继电器输出和1个SM 1221 8 DC 输入。该实例一共有 46 点输入和 34 点输出。这里需要说明的是CPU 已分配驱动内部继电器线圈所需的功率,计算中无需包括内部继电器线圈的功率要求。
CPU 功率预算 | 5 VDC | 24 VDC |
CPU 1214C AC/DC/继电器 | 1600 mA | 400 mA |
减 | ||
系统要求 | 5 VDC | 24 VDC |
CPU 1214C,14 点输入 | - | 14 * 4 mA = 56 mA |
3 个 SM 1223,5 V 电源 | 3 * 145 mA = 435 mA | |
1 个 SM 1221,5 V 电源 | 1 * 105 mA = 105 mA | |
3 个 SM 1223,各 8 点输入 | 3 * 8 * 4 mA = 96 mA | |
3 个 SM 1223,各 8 个继电器线圈 | 3 * 8 * 11 mA = 264 mA | |
1 个 SM 1221,8 点输入 | 8 * 4 mA = 32 mA | |
总要求 | 540 mA | 448 mA |
等于 | ||
电流差额 | 5 VDC | 24 VDC |
总电流差额 | 1060 mA | -48 mA |
表1 使用电流计算
在本例中的 CPU 为 SM 提供了足够的 5 VDC 电流,但没有通过传感器电源为所有输入和扩展继电器线圈提供足够的 24 VDC 电流。 I/O 需要 448 mA 而 CPU 只提供 400mA。 该安装额外需要一个至少为 48 mA 的 24 VDC 电源以运行所有包括的 24 VDC 输
入和输出。
1.7 S7-1200 有几种运行模式?
答:有三种,分别是:STOP 模式、STARTUP 模式和RUN模式。
在 STOP 模式下,CPU 不执行任何程序,而用户可以下载项目;
在 STARTUP 模式下,执行一次启动 OB(如果存在)。 在 RUN 模式的启动阶段,
不处理任何中断事件;
在 RUN 模式下,重复执行扫描周期。 中断事件可能会在程序循环阶段的任何点发生
并进行处理。处于 RUN 模式下时,无法下载任何项目。
1.8 S7-1200 支持那些上电模式?
答: 支持三种上电模式,分别为:STOP 模式,暖启动后转到 RUN 模式,暖启动后转到断电前的模式。
如图2可在项目视图中选择相应的PLC设备,在设备配置下的CPU属性“Startup”中进行选取。
图2选择上电模式
在暖启动时,所有非保持性系统及用户数据都将被初始化,保留保持性用户数据。
1.9 CPU有哪些存储区?
答:有三个存储区,分别为:
装载存储区(load memory):用于非易失性地存储用户程序、数据和组态。 项目被下载到 CPU 后,首先存储在装载存储区中。 该存储区位于存储卡(如存在)或 CPU 中。 该非易失性存储区能够在断电后继续保持。 存储卡支持的存储空间比 CPU 内置的存储空间更大。
工作存储区(work memory):属于易失性存储器,用于在执行用户程序时存储用户项目的某些内容。 CPU会将一些项目内容从装载存储器复制到工作存储器中。 该易失性存储区将在断电后丢失,而在恢复供电时由 CPU 恢复。
保持性存储区(retentive memory) :用于在断电时存储所选用户存储单元的值。 发生掉电时,CPU 留出了足够的缓冲时间来保存几个有限的指定单元的值。 这些保持性值随后在上电时进行恢复。
那么如何显示当前项目的存储器使用情况,可以右键单击相应 CPU(或其中的某个块),然后从菜单中选择“资源”(Resources) 。
图3项目使用存储器情况
如果要显示当前 CPU 的存储器使用情况,可以双击“在线和诊断”(online and diagnostics),展开“诊断”(Diagnostics),然后选择“存储器”(Memory)。
图4 CPU使用存储器情况
1.10 S7-1200 支持那些数据类型?
答:见下表:
数据类型 | 大 小(bits) | 范围 | 常量输入实例 |
Bool | 1 | 0到1 | TRUE,FALSE,0,1 |
Byte | 8 | 16#00 到 16#FF | 16#12, 16#AB |
Word | 16 | 16#0000 to 16#FFFF | 16#ABCD, 16#0001 |
DWord | 32 | 16#00000000 到16#FFFFFFFF | 16#02468ACE |
Char | 8 | 16#00 到 16#FF | 'A', 't', '@' |
Sint | 8 | -128 to 127 | 123, -123 |
Int | 16 | -32,768 to 32,767 | 123, -123 |
Dint | 32 | -2,147,483,648 到2,147,483,647 | 123, -123 |
USInt | 8 | 0 到 255 | 123 |
UInt | 16 | 0 到 65,535 | 123 |
UDInt | 32 | 0 到 4,294,967,295 | 123 |
Real | 32 | +/-1.18 x 10 到 +/-3.40 x 10 C | 123.456, -3.4, -1.2E+12, 3.4E-3 |
LREAL | 64 | +/-2.2250738585072020 ×10到 +/-1.7976931348623157 ×10 | 12345.123456789. -1.2E+40 |
Time | 32 | T#-24d_20h_31m_23s_648ms 到 T#24d_20h_31m_23s_647ms 存储为 -2,147,483,648`ms 到 +2,147,483,647ms |
T#5m_30s 5#-2d T#1d_2h_15m_30x_45ms |
String | 可变的 | 0 到 254 字节字符 | 'ABC' |
DTL | 12个字节 | **小值: DTL#1970-01-01-00:00:00.0 **值: DTL#2554-12-31-23:59:59.999 999 999 |
DTL#2008-12-16- 20:30:20.250 |
表2 数据类型
1.11 有几种存储卡可供CPU使用,有何作用?
答:有两种,分别为: 2MB 6ES7 954-8LB00-0AA0 和 24MB 6ES7 954-8LF00-0AA0。
注意:CPU 仅支持预格式化的 SIMATIC 存储卡。如果使用 Windows 格式化程序对SIMATIC 存储卡重新进行格式化,CPU 将无法使用该存储卡。在将程序复制到格式化的存储卡之前,请删除存储卡中以前保存的所有程序。
存储卡可作为传送卡或程序卡使用,24MB存储卡还用于升级CPU的固件。
传送卡:可以将卡中的程序复制到 CPU 的内部装载存储器,而无需使用 STEP 7 Basic。 插入传送卡后,CPU 首先擦除内部装载存储器中的用户程序和所有强制值,然后将程序从传送卡复制到内部装载存储器。 传送过程完成后,必须取出传送卡。在密码丢失或忘记密码时 ,可使用空传送卡访问受密码保护的 CPU。 插入空传送卡会删除 CPU 内部装载存储器中受密码保护的程序。 随后可以将新的程序下载到 CPU 中。
程序卡:可用作 CPU 的外部装载存储器。 在 CPU 中插入程序卡将擦除 CPU 内部装载存储器的所有内容(用户程序和所有强制值)。 CPU 然后执行外部装载存储器(程序卡)中的程序。 如果将数据下载到插有程序卡的 CPU,将仅更新外部装载存储器(程序卡)。
SIMATIC MC |
S7-1200 PLC装载区是否有程序 |
结果 |
||
卡类型 | 是否有程序 | SIMATIC MC | 装载存储区 | |
未定义 | 否 | 是 | PLC中的项目 | 空的 |
程序卡 | 是 | 否 | MC卡中的项目 | 空的 |
是 | MC卡中的项目 | 空的 | ||
传输卡 | 是 | --- | MC卡中的项目 | |
--- | MC卡中的项目 |
表3 存储卡应用
1.12如何使用存储卡升级CPU固件?
答:注意:如果使用 Windows 格式化程序对SIMATIC 存储卡重新进行格式化,CPU 将无法使用该存储卡。
可以按以下步骤升级固件:
• 将SIMATIC MC 24M 空卡插入计算机的SD读卡器中,使用Windows 浏览器察看存储卡的内容。如果卡不是空的,可以删除名称为“SIMATIC.S7S”或“FWUPDATe.S7S”的文件夹和“S7_JOB.S7S”文件;
• 从网站(http://support.automation.siemens.com/WW/ )下载S7-1200 CPU 操作系统更新文件,双击更新文件夹,设置SIMATIC MC的根目录为解压路经,开始进行文件展开,在解压结束后,卡中根目录下会有文件夹“FWUPDATE.S7S”和文件“S7_JOB.S7S”;
• 将卡插入CPU 中,如果CPU 处在运行状态,则CPU进入停止模式。CPU上的维护LED将闪烁,这说明卡已经安装。
• 采用以下任一方法开始更新固件:
CPU 重新上电或
使用软件执行STOP模式向RUN 模式转换(CPU将重启)或
使用软件执行MRES 存储卡复位。
这样CPU进入启动(startup)阶段并且进行固件更新。在固件更新过程中,RUN/STOP LED指示灯在绿和橙之间闪烁。当RUN/STOP LED 指示为STOP模式并且MAINT LED 闪烁时,则CPU的固件更新完毕。
• 从CPU 中拔出存储卡;
• 可使用以下方法重新启动CPU使用新固件:
CPU 重新上电或
使用软件执行STOP模式向RUN 模式转换(CPU将重启)或
使用软件执行MRES 存储卡复位。
用户程序和硬件配置在更新固件是不会受影响,在CPU 重新上电后,CPU 将进入启动(startup )状态。
2 软件 STEP 7 Basic V10.5 常问问题
2.1软件安装对操作系统有何要求?
答:Windows XP (Home SP3, Professional SP3),Windows Vista (Home Premium SP1, Business SP1, Ultimate SP1)。
2.2如何对S7-1200进行工厂复位?
答:首先要求CPU中无存储卡,STEP 7 Basic与CPU建立了在线连接。接着可按照以下步骤操作:
在项目视图(project view) 中项目树( project tree) 下打开在线访问(online access);
点击PC与CPU连接的网卡;
双击更新可访问的设备(update accessible devices);在相应的CPU上右击鼠标,选择在线和诊断(online & diagnose);
打开CPU的在线和诊断的视图;
在“功能”文件夹中选择“复位到工厂设置”组;
如果想保持设备的IP地址,选择“保持IP地址”的选择框;
如果想删除IP地址,选择“删除IP地址”;
点击“复位”按钮;
在提示对话框点击“OK”确认。
在检查窗口中的信息列表中显示相应的消息,如果为“The module is reset to its factory settings.”则表示已完成CPU工厂复位工作。
2.3如何对S7-1200 设置IP地址?
答:我们可以使用两种方法对CPU分配IP地址:
方法一:使用“在线和诊断”访问的方式对CPU进行IP设置
在Portal view可以通过 online & Diagnostics 的Accessible devices操作,进入项目树下的在线访问(online access)下,右击所选设备的“online & diagnostics”编辑器(见图5)。在“online and diagnostics”编辑器中有“Assign IP address”的选项,检查MAC地址,确认后设置IP地址及子网掩码,点击“Assign IP address”。
图5 online access 编辑器
图6 online & diagnostics 编辑器
设置完成后,可在检查窗口中察看信息(Info)表格下的消息,通过该消息可确认设置IP是否成功(见图7)。
图7 检查窗口
这种方法适合用于新的CPU 或经过“恢复出厂设置”的CPU。
方法二:通过下载硬件配置的方式
在硬件配置中,对PROFINET 接口的以太网网地址进行设置。
完成组态后,可进行设备下载,如果是**次下载的情况,将进入“Extended download to device ”对话框。勾选显示所有连接设备(Show all accessible devices)选项。
图8 试图建立与设备连接
选择相应设备,点击“Load”进入下载界面。
图9 与设备建立了连接
设备在下载前需要对硬件配置进行编译。
图10 配置编译
图11 编译成功
编译成功之后,点击Load进行下载。
图12 下载完成
下载完成以后,可重新启动CPU。这样就完成了对CPU的硬件配置下载,同时CPU被设置成新的IP地址。在没有路由器的情况下,TCP/IP 通讯要求通讯双方的IP 地址在一个子网内。为了不必在下载不同的CPU 而频繁修改编程设备的IP 地址,STEP7 Basic 在这方面作了一些改进。如果在下载过程中,软件发现目标设备和编程器不在一个子网内,软件会自动为编程器添加一个临时的IP 地址,而这个临时的IP 地址和目标设备是在同一个子网内的,这样就可以在不用修改编程器IP 地址的情况下对非同一IP 子网的设备进行下载。
2.4如何对S7-1200 变量进行强制?
答:S7-1200 只能强制外设I/O,而不强制过程映象区。必须使用watch table进行变量强制。操作步骤如下:
• 建立Watch table,例如 Force Variable;
• 输入需要强制的外设I/O,例如:%I0.1:P,%Q0.1:P;
• 由于监视表默认的工具栏是显示所有修改的列(Show all modify colums) ,点击显示强制列(Show force columns) ;
图12 建立Watch table
• 点击持续监视(monitor all) ,进入在线状态;
图13 进入监视在线状态
• 点击开始强制(start forcing) ,系统会弹出对话框。
图14 提示对话框
• 点击Yes,便可以对外设I/O进行强制了,强制成功有图标显示 。
图15 已强制外设显示
注意:当CPU 中有强制变量时是不能对CPU 下载硬件的,系统会提示"Modifying test functions are active. Thus downloading the hardware configuration is denied?"。
要了解哪些变量被强制,可以在watch table 里使用显示所有强制值工具 (Show all forced value from this CPU)显示已强制的变量。
2.5如何上载S7-1200 硬件基本配置和程序?
答:可按以下步骤操作:
• 在Portal View 视图Start 任务中创建一个新项目,进入First steps 界面;
• 选择配置一个设备(Configure a Device);
• 选择添加新设备(Add new device);
• 选择SIMATIC PLC 下的未指定的CPU 1200 6ES7 2XX-XXXX-XXXX;
• 进入Project view 视图中项目树下PLC设备中的设备视图( Device view ),在“or detect the configuration of the connected device.”中点击 detect ;
图16 设备视图
• 选择相应的PLC,点击Load 便可以上载基本硬件配置了;
图17 检测所有连接的硬件
• 如果编程设备/PC 与PLC 不在一个网段上,会弹出分配IP地址询问对话框,选择 Yes ,软件会为编程设备/PC分配一个临时IP地址 ,如192.168.0.241;
图18 软件为编程设备/PC分配IP地址
• 在项目树下,右击PLC设备,选择离线/在线比较(Compare offline/online);
图19 选择离线/在线编辑器
• 在比较编辑器中,在操作(Action)列下,点击蓝和橙点 直至其为 从设备将对象上载到编程设备/PC(Upload from device)为止;
图20 离线/在线编辑器
• 点击同步在线和离线 按钮,进行上载预览窗口,在操作(Action) 选择继续(Continue)并点击Upload from device上载程序;
图21 上载浏览窗口
• 所有设备上载完成以后,将在设备和程序右侧会有一个绿色圆点,这代表上载成功。
图22 在线与离线设备比较
2.6系统和时钟存储器可以提供哪些功能?
答:可以分别为系统存储器和时钟存储器分配一个非保留的M存储器的字节,使能这些存储器的功能。
图23 系统和时钟存储器
系统存储器具有以下功能:
• 首次扫描( First cycle)位在启动 OB 完成后的**次扫描期间设置为 1。 (执行完**次扫描后,“首次扫描”位将设置为 0。);
• 诊断图形已更改( Diagnostic graph changed )位在 CPU 记录了诊断事件后的一个扫描周期内设置为 1。 在首次执行程序循环 OB 结束后,CPU 才会设置诊断图形已更改位。 在启动 OB 执行期间或首次程序循环 OB 执行期间,用户程序都无法检测到是否出现了诊断更改;
• “始终启用”位始终设置为 1;
• “始终禁用”位始终设置为 0。
被组态为时钟存储器的字节中的每一位都可生成方波脉冲。 时钟存储器字节提供了 8 种不同的频率:
• 10 Hz 时钟
• 5 Hz 时钟
• 2.5 Hz 时钟
• 2 Hz 时钟
• 1.25 Hz 时钟
• 1 Hz 时钟
• 0.625 Hz 时钟
• 0.5 Hz 时钟
CPU 是在从 STOP 模式切换到 STARTUP 模式时初始化这些字节,并且,在 STARTUP和 RUN 模式期间,时钟存储器的位随 CPU 时钟同步变化。
2.7如何对CPU设置保护?
答:CPU 提供了 3 个安全等级:
• 不保护 允许完全访问,没有密码保护;
• 写保护 限制修改(写入)CPU以及更改CPU模式(RUN/STOP),允许CPU 的只访
问、HMI 访问以及 PLC 到 PLC 通信。
• 读/写保护 限制读取 CPU 中的数据、修改(写入)CPU以及更改 CPU 以及更改
CPU模式(RUN/STOP)。允许 HMI 访问和所有形式的 PLC 到 PLC 通信。
可以按以下步骤对CPU设置保护:
• 在设备配置(Device configuration) 中,选择 CPU;
• 在检查窗口中,选择属性(Properties)选项卡;
• 选择保护(Protection) 属性设置保护等级和输入密码。
图24 设置CPU保护
密码区分大小写,每个等级都允许在访问某些功能时不使用密码。 CPU 的默认状态是没有任何限制,也没有密码保护。要限制 CPU 的访问,可以对 CPU 的属性进行组态并输入密码。通过网络输入密码并不会使 CPU 的密码保护受到威胁。受密码保护的 CPU 每次只允许一个用户不受限制地进行访问。密码保护不适用于用户程序指令的执行,包括通信功能。输入正确的密码便可访问所有功能。PLC 到 PLC 通信(使用代码块中的通信指令)不受 CPU 中安全等级的限制。 HMI 功能同样也不受限制。
2.8如何对程序块(OB、FB或 FC)设置保护?
答:要对块设置保护,按以下步骤操作:
• 可从编辑(Edit)菜单中选择“Know how protection” 命令;
图25 设置Know-how protection
• 输入允许访问该块的密码;
图26 设置密码
• 密码设置后,所加密的块的图标会发生变化。
图27 已加密的程序块
密码保护会防止对代码块进行未授权的读取或修改。 如果没有密码,只能读取有关代码块的以下信息:
• 块标题、块注释和块属性;
• 传送参数(IN、OUT、IN_OUT、Return);
• 程序的调用结构;
• 交叉引用中的全局变量(不带使用时的信息),但局部变量已隐藏。
2.9全局的符号DB与**地址DB的区别?
答:在建立全局DB时,如果选择Symbolic access only ,可认为要建立符号DB;如果不选择Symbolic access only ,可认为要建立**地址DB。
图28 创建全局DB
符号DB 只能通过符号名访问,不存在偏移地址,在设置保持时,可以单独设置。
图29 符号全局DB
**地址DB 既可以通过符号访问,也可以通过**地址访问;在打开编辑时可看到“Offset ”偏移地址列。在设置保持时,只能同时设置。
图30 **地址全局DB
相比时,符号DB 在其变量出现数据类型混合时,不会像**地址DB那样消耗存储资源;在插入其它变量也不用考虑程序的调用情况。
2.10如何保持定时器数据?
答:在timer的 instance DB 属性中无法设置保持,可以使用以下两种方法将定时器的实例数据设置成Retain:
方法一 在FB 中应用多重实例DB :
在已创建的FB中添加TON 指令;
图31 在FB中添加TON 函数
在创建函数TON 的实例DB时,选择多重实例类型;
图32 创建实例DB
在FB的接口部分变量声明中,将静态变量下的timer的实例变量设置成Retain.
图33设置变量为Retain
方法二 在全局DB中定义定时器的实例数据:
在全局DB( 符号) 中,建立 一个IEC_Timer 类型的变量,将其设为 Retain;
图34 在全局DB创建变量
在FC 中调用TON 指令,在弹出的调用实例数据的对话框中,选择 Cancel;
图35 在FC中添加TON 函数
手动指定TON 的实例数据。
图36 指定实例数据
由于计数器与定时器的使用方法类似,因此这些方法也适合设置计数器数据为保持性数据。
西门子S7-1200 紧凑型PLC在当前的市场中有着广泛的应用,作为经常与SENTRON PAC3200系列仪表共同使用的PLC,其Modbus通信协议的使用一直在市场上有着非常广泛的应用。本文将主要介绍如何使用Modbus 通信协议来实现S7-1200与SENTRON PAC3200仪表的通信。
1.西门子SENTRON PAC3200 仪表介绍
西门子的SENTRON PAC3200多功能电力仪表是一种用于面板安装的仪表,可用来计量、显示配电系统多达50个测量变量,例如电压、电流、功率、有功功率、频率以及**值、**小值和平均值。中文大屏幕图形液晶显示使用户可远距离读表。PAC3200仪表如下图所示。
图1:仪表PAC3200
1.1 SENTRON PAC3200 MODBUS RTU通信扩展模块介绍
PAC3200多功能仪表的本体没有MODBUS RTU通信的功能,如果希望将PAC3200作为从站连接到MODBUS RTU网络与主站进行数据交换必须选用外部扩展通信模块??SENTRON PAC RS485模块。(注意: PAC RS485 扩展模块使用错误的固件版本时将不能工作
SENTRON PAC3200 电力监测设备的固件版本**应为FWV2.0X。 较早的版本不支持
PAC RS485 扩展模块。)该扩展模块具有下列性能特点:
• 可通过设备正面设置参数
• 即插即用
• 支持 4.8/9.6/19.2 以及 38.4 KBd 通信传输速率
• 通过6针螺钉端子接线
• 不需要外接辅助电源
• 通过模块上的 LED 显示状态
PAC3200 MODBUS RTU通信扩展模块如下图所示。
(1) 通信接线端子
(2) 安装螺钉
(3) 通风口
(4) LED
图2:PAC3200 MODBUS RTU 通信模块
1.2 SENTRON PAC3200 MODBUS RTU通信扩展模块的接线
SENTRON PAC3200 MODBUS RTU通信扩展模块的接线如下图所示
图3:PAC3200 MODBUS RTU 通信模块的接线图
1. 将电缆连接到端子排上相应的螺栓端子。
2. 将电缆屏蔽层的一端连接到保护性接地PE。
3. 将信号公共端连接到保护性接地。 这样也使得扩展模块接地。
4. 在**个和**后一个通信节点上,在正信号和负信号之间接入总线端接电阻器。 为
此,PAC RS485 扩展模块中集成了一个120 Ohm 的总线端接电阻器。 如果需要其它
电阻值,请使用外部总线端接电阻器。 将它连接到**个和**后一个通信节点。
1.3 SENTRON PAC3200 MODBUS RTU通信的方式
1.SENTRON PAC3200设备支持的功能码如下:
FC | 功能码 | 数据类型 | 访问权限 | |
02 | 输入的状态 | 位 | 输入 | R |
03 | 输出寄存器 | 寄存器 | 输出 | R |
04 | 输入寄存器 | 寄存器 | 输入 | R |
06 | 单一输出寄存器 | 寄存器 | 输出 | RW |
10 | 多个输出寄存器 | 寄存器 | - | RW |
2B | 设备识别 | - | - | R |
表1: SENTRON PAC3200设备支持的功能码
R—可读
RW—可读写
2.SENTRON PAC3200 MODBUS RTU 与S7-1200进行通信
S7-1200 PLC可以通过功能代码0x03 和0x04 访问仪表PAC3200的被测量数据。
下表是一些PAC3200 被测量的数据。
表2: SENTRON PAC3200设备的一些被测量数据
2.西门子SENTRON PAC3200 仪表与S7-1200进行通信的接线图
下图是SENTRON PAC3200仪表与S7-1200进行MODBUS RTU 通信的接线图。
图4:S7-1200与PAC3200进行MODBUS RTU 进行通信的接线图
3.硬件需求
S7-1200 PLC目前有3种类型的CPU:
1)S7-1211C CPU。
2)S7-1212C CPU。
3)S7-1214C CPU。
这三种类型的CPU都可以使用MODBUS通信协议通过通信模块CM1241 RS485来实现S7-1200与PAC3200仪表的通信。
本例中使用的PLC硬件为:
1)PM1207电源 ( 6EP1 332-1SH71 )
2) S7-1214C ( 6ES7 214 -1BE30 -0xB0 )
3) CM1241 RS485 ( 6ES7 241 -1CH30 -0xB0 )
4) 模拟器 ( 6ES7 274 -1XH30 -0xA0 )
本例中使用的PAC3200仪表硬件为:
1) PAC3200 (7KM2112-0BA00-3AA0)
2) MODBUS RTU 模块 (7KM9300-0AB00-0AA0)
3) MODBUS 通信电缆 ( 6XV1830-0EH10)
3.软件需求
1) 编程软件 Step7 Basic V10.5 ( 6ES7 822-0AA0-0YA0)
4.S7-1200 MODBUS RTU的通信方式
S7-1200作为MODBUS RTU主站的通信方式是由DATA_ADDR 和 MODE 参数来选择 Modbus 功能类型的。
DATA_ADDR(从站中的起始 Modbus 地址): 指定要在 Modbus 从站中访问的数据的起始地址。MB_MASTER 使用 MODE 输入而非功能代码输入。 MODE 和 Modbus 地址范围一起确定实际 Modbus 消息中使用的功能代码。
下表列出了 MB_MASTER 参数 MODE、Modbus 功能代码和 Modbus 地址范围之间的对应关系。
表3: MB_MASTER的MODBUS 功能
5.S7-1200 与PAC3200 进行MODBUS RTU的通信组态
我们通过一个实例来介绍如何在Step7 Basic V10.5 中组态S7-1214C 和PAC3200的MODBUS RTU通信。
5. 1 PLC 硬件组态
首先在Step7 Basic V10.5中建立一个项目,如图1所示。
图5: 新建S7 1200项目
在硬件配置中,添加CPU1214C和通信模块CM1241 RS485模块,如图2所示。
图6: S7 1200硬件配置
在CPU的属性中,设置以太网的IP地址,建立PG与PLC的连接,如下图所示。
图7: S7 1200 IP地址的设置
5. 2 PAC3200参数设置
在SENTRON PAC 电力监测设备的主菜单中,调用“设置”>“RS485 模块”,出现下面的设置画面:
图8: PAC3200 MODBUS RTU 通信参数的设置
1. 地址的设置范围:1-247。本例中设为8。
2. 波特率的设置范围:4800,9600,19200,38400。本例中设为38400。
3. 设置外部通信的数据位、奇偶校验位及停止位:
• 8E1=8 个数据位,奇偶校验位为even, 1 个停止位
• 8O1=8 个数据位,奇偶校验位为odd, 1 个停止位
• 8N2=8 个数据位,无奇偶校验位, 2 个停止位
• 8N1=8 个数据位,无奇偶校验位, 1 个停止位
本例中根据S7-1200 MODBUS MASTER 的参数设置为 8N1。
4. 协议的设置:可选项为:SEABUS,MODBUS RTU。
本例中设为MODBUS RTU。
5.响应时间的设置:注意与波特率的设置相匹配,本例中设为10mS。
6.S71200 与PAC3200的MODBUS RTU通信原理与编程的实现
6. 1 S7 1200 PLC与PAC3200 通过MODBUS RTU 通信的基本原理
S7 1200提供了专用的MODBUS库进行MODBUS通信,如下图所示:
图9: S7 1200提供的专用MODBUS库
西门子PLC S7-1200的模块CM1241 RS232和CM1241 RS485都可以实现MODBUS RTU的通信,本例中采用CM1241 RS485模块来实现与仪表PAC3200的MODBUS RTU 的通信。
S7-1200的MODBUS RTU通信的基本原理是:
首先S7-1200 PLC的程序调用一次MODBUS 库中的功能块MB_COMM_LOAD来组态CM1241 RS232和CM1241 RS485模块上的端口,对端口的参数进行配置。
其次调用MODBUS 库中的功能块MB_MASTER或者MB_SLAVE作为MODBUS 主站或者从站与支持MODBUS协议的设备进行通信。
S7-1200 PLC作为MODUBUS 主站 与PAC3200 进行MODBUS RTU 通信的控制原理如下图所示:
图10:S7-1200 PLC作为MODUBUS 主站 与PAC3200 进行MODBUS RTU 通信原理
S7-1200 PLC还可以作为MODBUS子站与作为MODBUS主站之间的PLC进行MODBUS RTU通信,其控制原理如下图所示:
图11:S7-1200 PLC作为MODBUS子站与作为MODBUS主站之间的PLC进行MODBUS RTU的通信原理
每个S7-1200 CPU**多可带3个通信模块,而每个CM1241 RS485通信模块理论上**多支持247个MODBUS子站。但是在实际应用时需要考虑CPU的性能以及轮循MODBUS子站的时间。
6. 2 S7 1200 PLC与PAC3200通过MODBUS RTU通信的编程
1.MODBUS RTU 通信接口参数的编程
MB_COMM_LOAD 功能块用于组态点对点 (PtP, Point-to-Point) CM 1241RS485 或 CM 1241 RS232 模块上的端口,以进行 Modbus RTU 协议通信。
程序开始运行时,调用一次MB_COMM_LOAD功能块,来实现对MODBUS RTU模块
的初始化组态。
MB_COMM_LOAD执行一次的编程方式采用如下图所示时钟位M10.0来完成。
图12:MB_COMM_LOAD执行一次的编程时钟位的设置
MB_COMM_LOAD功能块的编程如下图所示。
图13:MB_COMM_LOAD功能块的编程
PORT:指的是通过哪个通信模块进行MODBUS RTU通信。
BAUD:指的是和MODBUS子站进行通信的速率。
通信端口的波特率。取值范围为300,600,1200,2400,4800,9600,19200,38400,57600,
76800,115200。
注意:仪表PAC3200的波特率的设置范围:4800,9600,19200,38400。因此上S7-1200
的波特率的设置一定要和仪表PAC3200的波特率的设置相一致。
MB_DB:对 MB_MASTER 或 MB_SLAVE 指令所使用的背景数据块的引用。 在用户程序中放置
MB_SLAVE 或 MB_MASTER 后,DB标识符会出现在 MB_DB 功能框连接的助手下拉列表中。
如“MB_MASTER_DB”或“MB_SLAVE_DB”。
STATUS:端口状态代码。具体含义如下表所示。
表4: MB_COMM_LOAD组态端口的状态代码
2.MODBUS_MASTER功能块的编程
MB_MASTER 功能块允许程序作为Modbus 主站使用点对点 (PtP, Point-to-Point) CM 1241 RS485 或 CM 1241RS232 模块上的端口进行通信。 可访问一个或多个 Modbus 从站设备中的数据。
MB_MASTER功能块的编程如下图所示。
图14:MB_MASTER功能块的编程
REQ:数据发送请求信号。0-无请求。1-请求将数据传送到MODBUS从站。
MB_ADR:通信对象MODBUS从站的地址。有效地址范围为0-247。值 0 被保留用于将消息广播到所有 Modbus 从站。 只有Modbus 功能代码 05、06、15 和 16 是可用于广播的功能代码。
注意:此处MODBUS从站的地址一定要与仪表PAC3200 的MODBUS 地址相一致。
MODE:模式选择。选择范围为:读、写、诊断。
DATA_ADDR:从站中的起始地址: 指定要在 Modbus 从站中访问的数据的起始地址。
特别注意的是:由于仪表PAC3200的寄存器与S7-1200 MODBUS RTU寄存器的不一致
性,读取仪表PAC3200的DATA_ADDR的地址必须从40002开始。
注意: S7-1200的MODBUS RTU通信功能是通过使用“DATA_ADDR”和“MODE”的组合
来选择MODBUS功能码,如下表所示。
表5: S7-1200的MODBUS RTU通信功能码
而仪表PAC3200 MODBUS RTU通信功能则是通过功能码来实现的,如下表所示。
FC | 功能码 | 数据类型 | 访问权限 | |
02 | 输入的状态 | 位 | 输入 | R |
03 | 输出寄存器 | 寄存器 | 输出 | R |
04 | 输入寄存器 | 寄存器 | 输入 | R |
06 | 单一输出寄存器 | 寄存器 | 输出 | RW |
10 | 多个输出寄存器 | 寄存器 | - | RW |
2B | 设备识别 | - | - | R |
表6: 仪表PAC3200 MODBUS RTU通信功能码
因此从上述可以得出如果需要读取输出寄存器的值时,需要使用模式0的03H功能,即
从寄存器40001到49999来读取仪表的数据,但是由于仪表PAC3200的寄存器与S7-1200
MODBUS RTU寄存器的不一致性,读取仪表PAC3200的DATA_ADDR的地址必须从40002开
始。
DATA_LEN:请求访问数据的长度。位数或字节数。
DATA_PTR:数据指针: 指向要写入或读取的数据的 CPU DB 地址。 该DB 必须为
“非仅符号访问”DB 类型。
NDR: 新数据就绪:
•0 – 事务未完成
•1 – 表示 MB_MASTER 指令已完成所请求的有关 Modbus从站的事务。
BUSY:忙:
•0 – 无正在进行的 MB_MASTER 事务
•1 – MB_MASTER 事务正在进行
ERROR:错误:
•0 - 未检测到错误
•1 – 表示检测到错误并且参数 STATUS 提供的错误代码有效。
STATUS:状态代码,如下表所示。
表7: MB_MASTER 进行MODBUS RTU通信的状态代码
在成功地编译下载到在S7-1200 PLC中后,可以从变量表中看到仪表PAC3200的三相相电压数据,如下图所示。
图15:在S7-1200中通过MODBUS RTU通信得到的仪表PAC3200的三相相电压数据
Modbus 主站通信规则:
● 必须先执行 MB_COMM_LOAD 组态端口,然后 MB_MASTER 指令才能与该端口通
信。
● 如果要将某个端口用于初始化 Modbus 主站的请求,则 MB_SLAVE 将不能使用该端
口。MB_MASTER 执行的一个或多个实例可使用该端口。
● Modbus 指令不使用通信中断事件来控制通信过程。 用户程序必须轮询
MB_MASTER 指令以了解传送和接收的完成情况。
● 如果用户程序操作 Modbus 主站并使用 MB_MASTER 向从站发送请求,则用户必须
继续轮询(执行 MB_MASTER)直到返回从站的响应。
● 请从同一个 OB(或 OB 优先等级)调用指定端口的所有 MB_MASTER 执行。
3.MODBUS_SLAVE功能块的编程
由于S7-1200与PAC3200进行MODBUS RTU通信,没有使用MODBUS_SLAVE功能块,因此在此只作简单介绍。
MB_SLAVE 指令允许程序作为 Modbus 从站使用点对点 (PtP, Point-to-Point) CM 1241RS485 或 CM 1241 RS232 模块上的端口进行通信。 Modbus RTU 主站可以发出请求,然后程序通过执行 MB_SLAVE 来响应。
在程序中放置 MB_SLAVE 指令时,必须分配**的背景数据块。 指定MB_COMM_LOAD 指令中的 MB_DB 参数时会用到该 MB_SLAVE 背景数据块名称。
Modbus 通信功能代码(1、2、4、5 和 15)可以在 PLC 输入过程映像及输出过程映像中直接读写位和字。
图16:MB_SLAVE 功能块
MB_ADDR:Modbus RTU 地址(1 到 247):Modbus 从站的站地址。
MB_HOLD_REG:指向 Modbus 保持寄存器 DB 的指针。 保持寄存器 DB 必须为典型的全局 DB。注意:在创建此数据块时,请不要选择“Symbolic address only仅通过符号地址访问”。使用“MB_SLAVE”指令时,
NDR:新数据就绪:
•0 – 无新数据
•1 – 表示 Modbus 主站已写入新数据
DR:数据读取:
•0 – 无数据读取
•1 – 表示 Modbus 主站已读取数据
ERROR:错误:
•0 - 未检测到错误
•1 – 表示检测到错误并且参数 STATUS 提供的错误代码有效。
STATUS:错误代码。如下表所示。
表8: MB_SLAVE 进行MODBUS RTU通信的状态代码