详细介绍
西门子4KW变频器
上海盟疆工业自动化设备有限公司工业业务领域致力于为客户提供高品质的服务,追求客户的满意是我们始终如一的目标。在中国,工业业务领域拥有一支技术过硬、经验丰富的工程师队伍,为客户提供7x24小时全天候服务。专业的服务人员和遍布全国的服务及备件网络将对客户的服务需求迅速作出响应,将由设备故障引起的损失降低到小的程度。
S7-200 SMART CPU之间的以太网通信
S7-200 SMART CPU 固件版本 V2.0 及以上版本的 CPU 可实现CPU、编程设备和HMI(触摸屏)之间的多种通信:
— CPU与编程设备之间的数据交换。
— CPU与HMI之间的数据交换。
— CPU与其他S7-200 SMART CPU之间的PUT/GET通信。
S7-200 SMART CPU 以太网连接资源如下:
— 1个连接用于与STEP7 Micro/Win SMART软件的通信。
— 8个连接用于CPU与HMI之间的通信。
— 8个连接用于CPU与其他S7-200 SMART CPU之间的PUT/GET主动连接
— 8个连接用于CPU与其他S7-200 SMART CPU之间的PUT/GET被动连接
PUT/GET 指令格式
S7-200 SMART CPU提供了PUT/GET 指令,用于S7-200 SMART CPU之间的以太网通信(PUT/GET 指令格式见 表 1)。PUT/GET 指令只需要在主动建立连接的 CPU 中调用执行,被动建立连接的 CPU不需要进行通信编程。PUT/GET 指令中TABLE 参数用于定义远程CPU的 IP地址、本地CPU和远程 CPU的数据区域以及通信长度(TABLE 参数定义见 表 2)。
表 1 PUT和GET 指令:
LAD/FBD | STL | 描述 |
PUT TABLE | PUT 指令启动以太网端口上的通信操作,将数据写入远程设备。PUT 指令可向远程设备写入多 212 个字节的数据。 | |
GET TABLE | GET 指令启动以太网端口上的通信操作,从远程设备获取数据。GET 指令可从远程设备读取多 222 个字节的数据。 |
表 2 PUT和GET 指令的TABLE参数定义:
字节偏移量 | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
0 | D1 | A2 | E3 | 0 | 错误代码4 | |||
1 |
远程 CPU的 IP地址 | |||||||
2 | ||||||||
3 | ||||||||
4 | ||||||||
5 | 预留(必须设置为0) | |||||||
6 | 预留(必须设置为0) | |||||||
7 |
指向远程 CPU 通信数据区域的地址指针 | |||||||
8 | ||||||||
9 | ||||||||
10 | ||||||||
11 | 通信数据长度5 | |||||||
12 |
指向本地 CPU 通信数据区域的地址指针 | |||||||
13 | ||||||||
14 | ||||||||
15 |
1 D :通信完成标志位,通信已经成功完成或者通信发生错误。
2 A :通信已经激活标志位。
3 E :通信发生错误,错误原因需要查询 错误代码4。
4 错误代码 :见表 3 PUT 和 GET 指令TABLE 参数的错误代码。
5 通信数据长度 :需要访问远程 CPU通信数据的字节个数,PUT 指令可向远程设备写入多 212 个字节的数据,GET 指令可从远程设备读取多 222 个字节的数据。
表 3 PUT 和 GET 指令TABLE 参数的错误代码:
错误代码 | 描述 |
0 | 通信无错误 |
1 | PUT/GET TABLE参数表中存在非法参数:
|
2 | 同一时刻处于激活状态的 PUT/GET 指令过多(仅允许 16 个) |
3 | 无可以连接资源,当前所有的连接都在处理未完成的数据请求(S7-200 SAMRT CPU主动连接资源数为 8 个)。 |
4 | 从远程 CPU 返回的错误:
|
5 | 与远程 CPU 之间无可用连接:
|
6-9 | 预留 |
通信资源数量
S7-200 SMART CPU 以太网端口含有 8 个PUT/GET 主动连接资源和 8 个PUT/GET 被动连接资源。例如:CPU1 调用 PUT/GET 指令与 CPU2 ~ CPU9 建立8主动连接的同时,可以与 CPU10 ~ CPU17 建立8被动连接(CPU10 ~ CPU17 调用 PUT/GET 指令),这样的话 CPU1 可以同时与16台 CPU(CPU2 ~ CPU17)建立连接。关于主动连接资源和被动连接资源的详细解释如下:
1、主动连接资源和被动连接资源
- 调用 PUT/GET 指令的CPU 占用主动连接资源数;相应的远程 CPU 占用被动连接资源。
2、8 个PUT/GET 主动连接资源
- S7-200 SMART CPU 程序中可以包含远多于 8个PUT/GET 指令的调用,但是在同一时刻多只能激活 8 个 PUT/GET 连接资源。
- 同一时刻对同一个远程 CPU 的多个 PUT/GET 指令的调用,只会占用本地 CPU的一个主动连接资源和远程 CPU的一个被动连接资源。本地 CPU 与远程 CPU之间只会建立一条连接通道,同一时刻触发的多个 PUT/GET 指令将会在这条连接通道上顺序执行。
- 同一时刻多能对8个不同 IP 地址的远程 CPU 进行 PUT/GET 指令的调用,第9个 远程CPU的PUT/GET 指令调用将报错,无可用连接资源。已经成功建立的连接将被保持,直到远程 CPU断电或者物理断开。
3、8 个PUT/GET 被动连接资源
- S7-200 SMART CPU 调用 PUT/GET 指令,执行主动连接的同时也可以被动地被其他远程 CPU 进行通信读写。
- S7-200 SMART多可以与被8个不同 IP 地址的远程 CPU 进行 建立被动连接。已经成功建立的连接将被保持,直到远程 CPU断电或者物理断开。
指令编程举例
在下面的例子中,CPU1 为主动端,其 IP 地址为192.168.2.100,调用 PUT/GET 指令;CPU2 为被动端,其 IP 地址为192.168.2.101,不需调用 PUT/GET 指令,网络配置见图 1 。通信任务是把 CPU1 的实时时钟信息写入 CPU2 中,把CPU2 中的实时时钟信息读写到 CPU1 中。
图 1 CPU通信网络配置图
1、CPU1 主动端编程
CPU1 主程序中包含读取 CPU 实时时钟、初始化 PUT/ GET 指令的 TABLE 参数表、调用 PUT 指令和 GET 指令等。
网络1:读取 CPU1 实时时钟,存储到 VB100 ~ VB107 。
图 2 读取 CPU1 实时时钟
注:READ_RTC 指令用于读取 CPU 实时时钟指令,并将其存储到从字节地址 T 开始的 8 字节时间缓冲区中,数据格式为 BCD 码。
网络2:定义 PUT 指令 TABLE 参数表,用于将 CPU1 的VB100 ~ VB107 传输到远程 CPU2 的VB0 ~ VB7。
西门子4KW变频器
图 3 定义 PUT 指令 TABLE 参数表
- a.定义通信状态字节
- b.定义 CPU2 IP 地址
- c.定义 CPU2 的通信区域 ,从 VB0 地址开始
- d.定义通信数据长度
- e.定义 CPU1 的通信区域,从 VB100 地址开始
网络3:定义 GET 指令 TABLE 参数表,用于将远程 CPU2 的VB100 ~ VB107 读取到 CPU1 的 VB0 ~ VB7。
图 4 定义 GET 指令 TABLE 参数表
- a.定义通信状态字节
- b.定义 CPU2 IP 地址
- c.定义 CPU2 的通信区域 ,从 VB100 地址开始
- d.定义通信数据长度
- e.定义 CPU1 的通信区域,从 VB0 地址开始
网络4:调用 PUT 指令和 GET 指令。
图 5 调用 PUT 指令和 GET 指令
2、CPU2 被动端编程
CPU2 的主程序只需包含一条语句用于读取 CPU2 的实时时钟,并存储到 VB100 ~ VB107,如图 6 所示。
图 6 读取 CPU2 实时时钟
组态保持范围
单击“系统块”(System Block)对话框的“保持范围”(Retentive Ranges) 节点组态在循环上电后保留下来的存储器范围。
图1.组态数据保存范围设置窗口
选择要在上电循环期间保持的存储区。 为 V 、M、T 或 C 存储器输入新值。
您可将下列存储区中的地址范围定义为保持: V 、M、T 和 C 。对于定时器,只能保持保持性定时器 (TONR) ,而对于定时器和计数器,只能保持当前值(每次上电时都将定时器和计数器位清零)。
默认情况下,CPU 中并未定义保持区域,但可组态保持范围以保持多 10 KB 的存储器 空间。
CPU 断电后的数据保持
CPU 在断电和上电时对保持性存储器执行以下操作:
● 断电时: CPU 将的保持性存储器范围保存到存储器。
● 上电时: CPU 先将 V 、M、C 和 T 存储器清零,将所有初始值都从数据块复制到 V 存储器,然后将保存的保持值从存储器复制到 RAM 。
所有类型的 CPU,只要是在系统块里设置了数据保持的数据,断电后数据都会保存(不依靠于超级电容),但保存的存储区的范围大为10K。对于未设置为数据保持的存储在RAM 中的数据,一旦掉电其数据就会丢失。超级电容可以用于保持实时时钟,一般上电24小时后通常保持7天。
表1.S7-200 SMART CPU 存储器地址保持范围
数据类型 | 描述 | CPU SR20 | CPU CR40 | CPU SR40 CPU ST40 | CPU SR60 CPU ST60 |
---|---|---|---|---|---|
V | 数据存储器 | VB0-VB8191 | VB0-VB8191 | VB0-VB16383 | VB0-VB20479 |
T | 定时器 | T0-T31 | T0-T31 | T0-T31 | T0-T31 |
C | 计数器 | C0-C255 | C0-C255 | C0-C255 | C0-C255 |
M | 标志位 | MB0-MB31 | MB0-MB31 | MB0-MB31 | MB0-MB31 |
从 RAM 建立数据块
要将 CPU V 存储器当前值保存到数据块页面;或者执行下载操作,担心 RAM 区数据当前值丢失,可以在执行下载操作前,先执行从 RAM 建立数据块,备份 V 存储区的当前值。
操作方法如下:
1、备份好源程序,新建空白项目操作
2、选择 PLC > 从 RAM 建立数据块(Create Data Block from RAM)菜单命令。如图2所示
图2
3、PLC 处于运行状态,执行操作时,会提示 “ 设置 PLC 为 STOP 模式 ?”,选择是才可以继续执行此功能,如图3所示;如果操作前 PLC 已处于 STOP 状态,不会出现此对话框
注意:想要执行从 RAM 建立数据块功能,需要在 PLC 可以切换到 STOP 的情况下才可以操作!
图3
4、图3点击“是”之后出现下面的对话框,如图4所示,选择 “是” 将执行更新,将 CPU 中 RAM 区的 V 存储区数据当前值上传到数据块的数据页中。
如果执行操作时,使用的程序文件是源程序,选择 " Yes " 前,一定要注意源程序的备份!
图4
5、等待一段上传数据的时间,出现对话框,如图5 所示,点击" OK ",可以在数据块中查看 V 区数据
图5
执行从 RAM 建立数据块,上载到数据块中的数据有可能存放的位置
- 用户定义1:上一次下载数据块时,在数据块中用户自定义过初始值
- _PLC_DATA1:上一次下载数据块时,未定义初始值,在程序执行过程中修改过的 V 区地址,执行"从 RAM 建立数据块"命令时,这些已修改的地址会被给一个新的标签名
- 向导生成的数据块(例如 PID1_DATA):上一次下载数据块时,包含配置完向导后自动生成的数据块,比如 配置完 PID 后生成如 PID1_DATA 的数据块,执行"从 RAM 建立数据块"命令时,依然上传到此数据块中
6、将上传的各个数据块页面中的 V 区地址复制,粘贴到要下载的程序文件的数据块页面中,此时,一旦下载,数据块保存到 EEPROM 中,作为 V 存储区数据的初始值生效。
常见问题
为什么S7-200 SMART 系统块设置断电保持后,数据依旧无法实现断电保持?
可以根据以下步骤核对设置:
1.确保已设置断电保持的程序下载到PLC。
2.如果SMART PLC 有连接HMI、上位机或者其他PLC,请先断开相关的通讯设备,再做测试,避免这些设备给PLC相关地址不断更新数据。
3.如果根据以上步骤测试均无效,请创建一个空项目,只做系统块断电保持设置,重新下载程序后通过状态图表给断电保持范围内某一地址写入新值后将PLC断电再上电查看。
组态数字量输入
单击 “系统块” (System Block) 对话框的 “数字量输入” (Digital Inputs) 节点组态数字量输入滤波器和脉冲捕捉位。
图1. 组态数字量输入设置窗口
数字量输入滤波器
S7-200 SMART CPU 允许为某些或所有数字量输入点选择一个定义时延(可在 0.2 ms 到 12.8 ms 和 0.2 μs 到 12.8 μs 之间选择)的输入滤波器。“系统块”中不能修改滤波时间的其他数字量输入通道,其滤波时间默认为12.8ms。
如果需要使用 S7-200 SMART 的高速计数器功能,需要手动修改滤波器的时间至 0.2 μs (也可根据速率设定成更长的滤波时间),否则在速率较高时将会造成高速计数器无法计数。 因为S7-200 SMART 与S7-200 不同,对于 S7-200 SMART ,用户可以根据输入信号速率不同自由设置滤波时间以便高速计数器过滤噪音。
通过设置输入延时,您可以过滤数字量输入信号。 输入状态改变时,输入必须在时延期限内保持在新状态,才能被认为有效。 滤波器会消除噪音脉冲,并强制输入线在数据被接受之前稳定下来。默认滤波时间是 6.4 ms。
要设置输入延迟,请按以下步骤操作:
1. 从一个或多个输入旁的下拉列表中选择延迟时间。
2. 单击 “确定” (OK) 按钮,输入选项。
如果数字量输入通道的滤波时间更改自以前的设置,则新的“0” 电平输入值可能需要保 持长达 12.8 ms 的累积时间,然后滤波器才会*响应新输入。 在此期间,可能不 会检测到持续时间少于 12.8 ms 的短“0”脉冲事件或对其计数。 滤波时间的这种更改会引发意外的机械或过程操作,这可能会导致人员死亡、重伤和设备损坏。 为了确保新的滤波时间立即生效,必须关闭 CPU 电源后再开启。
脉冲捕捉位
S7-200 SMART CPU 为数字量输入点提供脉冲捕捉功能。通过脉冲捕捉功能可以捕捉高电平脉冲或低电平脉冲。此类脉冲出现的时间极短,CPU 在扫描周期开始读取数字量输入时,可能无法始终看到此类脉冲。
当为某一输入点启用脉冲捕捉时,输入状态的改变被锁定,并保持至下一次输入循环更新。 这样可确保延续时间很短的脉冲被捕捉,并保持至 S7-200 SMART CPU 读取输入。
根据 CPU 型号,可按以下数字量输入点数单独启用脉冲捕捉操作:
● CPU CR40: 14
● CPU SR20: 12 (14,如果存在 SB DT04 )
● CPU ST40/CPU SR40: 14 (16,如果存在 SB DT04 )
● CPU ST60/CPU SR60: 14 (16,如果存在 SB DT04 )
图2. S7-200 SMART CPU (脉冲捕捉启用和未启用)的基本操作状况
由于脉冲捕捉功能在输入通过输入滤波器后对输入进行操作,您必须调整输入滤波时间, 以防滤波器过滤掉脉冲。
图3. 数字量输入电路方框图