西门子中继器价格
6ES7972-0AA02-0xA0 SIMATIC DP,RS 485 中继器 用于连接 PROFIBUS/MPI 总线系统带多 31 个参与者 大传输速率 12 MBit/s, 防护等级 IP20 改进的用户操作 |
1. 概述
对于一些通讯速率和稳定性要求不高的场合,串行通讯仍有很广泛的应用。西门子标准的串行通讯的解决方案为CP340、CP341、CP440、CP441,但是如果现场CPU有集成的PTP接口,并且不需要使用一些加载协议(例如MODBUS),使用300C CPU的集成串口也可以进行ASCII,3964(R),RK512等协议的通讯。
以下仅以ASCII协议为例、使用485接口,介绍如何使用300C CPU的集成PTP口进行通讯。
2. 软件环境
2.1. STEP7 V5.5
用于编写PLC程序,此软件需要从西门子购买,本文档中所有的程序代码均使用Step7 V5.5编写。
2.2. 串口调试器
第三方的软件,可以从上下载。
只要是支持ASCII协议串口调试软件即可,没有特殊要求。
3. 硬件列表
PS 307 | 6ES7 307-1EA00-0AA0 |
CPU 314-2PTP | 6ES7 314-6BF01-0AB0 |
MMC | 6ES7 953-8LG11-0AA0 |
PC适配器(USB) | 6ES7 972-0CB20-0xA0 |
232转485接头 |
表1 在该项目中使用的硬件
4. 组态配置
4.1. 结构示意图
图1 硬件结构图
4.2. 硬件组态
4.2.1 在Step7中建立1个新的S7-300站点
图2 建立新的S7-300 station
4.2.2 组态机架及CPU
图3 选择机架,将314C-2PTP CPU插入对应槽位
4.3. 设置PTP的接口参数
4.3.1 选择协议并设置起始地址(其地址默认即可)
图4 协议选择
4.3.2 设置该PTP接口的波特率,数据位,停止位和奇偶校验位
西门子中继器价格
图5 设置参数
4.3.3 选择信息结束的方式
1、 以固定的字符延迟时间作为每帧数据的结束方式;
2、 以固定的字符长度作为每帧数据的结束方式;
3、 以结束字符作为每帧数据的结束方式。
图6 报文结束条件设置
4.3.4 根据工艺要求设置接口类型
根据工艺可以选择RS422或RS485接口。
图7 设置接口类型
5. 功能块的使用及管脚定义
5.1. SFB 60 "SEND_PTP" 数据发送功能块管脚定义
表2 SFB 60 "SEND_PTP"管脚定义
问题:在S7-CPU中使用嵌套程序需要注意什么,如何使用?
回答:S7-CPU支持嵌套程序,但对于不同的CPU类型,在使用时需要注意一些问题。
1. 不同的CPU类型,支持的嵌套程序深度不同,用户可在CPU的技术数据中查到此参数,以6ES7315-2AG10-0AB0为例。
图1:CPU的嵌套深度参数
2. 用户可以按照如下方式使用嵌套功能:
a) 在某个优先级组织块中调用多个嵌套FC/FB。例如,在OB1 (优先级为1)调用FC1,FC1中调用FC2,FC2中调用FC3,等等,一直到FC7,与OB1共8层深度。如果在FC7 中又调用了FC8 ,此时会导致CPU 停机,在CPU在线信息界面中可查看到此情况,如图2所示。用户也可在OB35(优先级为12)调用FC11,FC11中调用FC12,FC12中调用FC13,等等,一直到FC17。
图2:嵌套调用
b) 在某个优先级中调用某个FC,此FC多次调用自身。例如,在OB1 (优先级为1)调用FC1,FC1中仍然调用FC1,用户在FC1 的程序中必须编程累计FC1被调用的次数,如果达到了7次,则需要从FC1 中跳出调用(此方法即为软件行业广泛应用的递归编程方法)。如果在FC1 调用自身次数超出了CPU允许的嵌套深度,此时会导致CPU 停机。
3. 当用户在使用嵌套功能时,可能出现几种错误:
a) The nesting depth of block calls (U-Stack) is too high(嵌套深度太高)。例如:
? 用户在某个优先级(如OB1)中调用嵌套程序深度超出所使用CPU支持深度,如第2节(a) 部分所描述。
? 用户在某个优先级(如OB1)中调用嵌套程序深度超出所使用CPU支持深度,如第2节(b) 部分所描述。
此时CPU将报16#4575错,如图3所示:
图3:同步错误嵌套1
b) The nesting depth of synchronous errors is too high(同步错误嵌套深度太高)。例如:
? 用户在OB1中使用L DB1.DBB0 语句(CPU中并未下载DB1),
? 此时CPU出现编程错误,将调用OB121。
? 如果用户在下载的OB121中又使用了L DB1.DBB0 指令,将导致CPU停机
此时CPU将报16#4573错,如图4所示:
图4:同步错误嵌套2
c) Error during allocation of local data (分配本地数据错误) 。对于S7-CPU每个优先级都有对本地数据大小的限制,如果用户使用的范围超出了此限制,CPU将出现错误。以6ES7315-2AG10-0AB0为例,其每个优先级下的本地数据大小为512 BYTE。如下错误使用都可能导致此错误:
? OB1 调用FC1,FC1 中定义的local data(TEMP数据类型)与OB1中定义的local data(TEMP数据类型)总和超出了CPU 对此优先级分配的local data 数量。
? OB1 中嵌套调用多个FC, 这些FC 使用的local data 与OB1中定义的local data(TEMP数据类型)总和超过了分配给此优先级的local data 数量。
此时CPU将报16#3576错,如图5所示:
图5:分配本地数据错误
? 对于S7-400CPU, 用户可以在硬件配置中调节每个优先级下的本地数据大小,以6ES7412-2XG04-0AB0为例,如图6所示:
图6:分配本地数据
4. 当用户在使用嵌套功能出现错误时,对于支持OB88的CPU(例如S7-400CPU),可用通过下载OB88来防止CPU停机,此时CPU将处于SF状态,但OB88不可以再出现嵌套使用错误,否则CPU将进入停机状态。对于不支持OB88的CPU(例如S7-300CPU),当出现嵌套调用错误时,无法避免CPU进入停机状态。
西门子中继器价格