n
1 介绍n在s7分布式安全中,f-cpu 的安全程序之间可以通过 s7 连接进行安全相关的通讯。与在标准程序中相同,这个s7连接是在netpro连接表中创建的,而且仅允许使用在工业以太网上s7 连接。必须是集成pn接口的f-cpu或者是s7-400 f-cpu 通过cp443-1 advanced 创建的s7连接,并且安全相关的通讯不能使用未指定伙伴的 s7 连接。n
同样,与在标准程序中相同,通过 s7 连接进行的安全相关通讯需要在安全程序中调用应用程序块发送和接收安全数据,分别是在distributed safety f 库(v1)中f_sends7和f_rcvs7两个f应用程序块。可以使用这些f应用程序块发送指定数量的bool、int、word和time数据类型的安全数据。通讯的安全数据必须存储在创建的f-db中。n
2 配置通过s7连接进行的安全通信本文通过一个示例项目介绍f-cpu 安全程序之间如何通过 s7 连接进行安全相关的通讯。随文档附带了示例程序,文件名为“f-s7.zip”供读者在应用时参考。示例程序中的f-cpu硬件密码都为1,安全程序密码都为2。n
2.1 示例所使用的软件和硬件环境· step7 v5.5+sp3n
· s7 distributed safety programming v5.4+sp5n
· s7 f configurationpack v5.5+sp9+upd1n
· cpu 317f-2pn/dp订货号 6es7 317-2fk14-0ab0 v3.2n
· cpu 416f-3pn/dp订货号 6es7 416-3fr05-0ab0 v5.3n
2.2 通过s7连接进行安全通信的组态2.2.1 组态cpu新建一个项目,分别插入一个simatic 300站和一个simatic 400站,选择对应的型号配置机架和cpu。n
1、分别为两个cpu分配ip地址和以太网(如图2-1、2-2所示)n
2、将两个cpu都组态为f-cpu(如图2-3所示)n
– 必须输入f-cpu的密码n
– 必须选中 “cpu包含安全程序 ”(cpu contains safety program)选项n
图2-1分配ip地址和以太网n
图2-2分配ip地址和以太网n
图2-3 分别将两个cpu组态为f-cpun
2.2.2 组态s7连接打开simatic manager界面选择options—>configure network进入netpro,右键点中cpu317-2pn/dp,弹出的对话框中选择“插入一个新连接”。在连接表中创建一个 s7 连接,连接对象选择cpu416f,连接类型选择s7连接,如图2-4所示。 之后,出现图2-5画面,核对连接双方的ip地址等属性参数后,点击“ok”确认。n
图2-4 创建一个s7 连接n
图2-5 s7 连接属性n
之后,点击“保存并编译”按钮,对刚才的操作进行编译和保存,如图2-6。编译完成后,通过右键点击cpu在弹出的对话框中选中“下载”,逐个将配置的s7连接分别下载到两个cpu中,如图2-7操作。n
图2-6 保存并编译n
图2-7 下载s7 连接到cpun
有关组态s7 连接的详细说明,请参考手册《配置硬件和通讯连接step 7》和step 7 在线帮助。n
2.3 通过s7连接进行安全通信的编程下面介绍如何对通过s7连接在f-cpu安全程序之间进行的安全相关的通讯进行编程。和通常情况下一下,首先需要在f-cpu 中的创建安全运行组和安全程序,必须在相关 f-cpu的安全程序中执行以下操作:n
· 创建在其中存储通讯的发送数据或接收数据的 f-db。n
· 从安全程序的 distributed safety f-库中调用为通讯的 f 应用程序块和分配参数。n
2.3.1 创建并编辑f通讯db通过s7连接的安全相关通讯进行传递的安全数据必须存储在创建的f-db中,这个f-db被称作f通讯db。在 simatic 管理器中创建和编辑f通讯db的方式与创建和编辑其它 f-db 的方式相同。创建f-db 时,在f-db的对象属性“常规 – 第 2 部分” (general – part 2) 选项卡中的“系列” (family) 域中分配“com_dbs7”标识符。 该标识符将 f-db 指定为 f 通讯db。只有具有该标识符的f-db才可作为f通讯db传送至f_sends7或 f_rcvs7,如图2-8、2-9所示。n
图2-8 创建f-dbn
图2-9 设置f通讯dbn
创建f通讯db后,还需要进行编辑声明数据类型,如图2-10所示。n
图2-10 f通讯db中声明数据n
f通讯db声明变量时必须符合以下属性:n
· 不允许它们成为背景数据块。n
· 它们的长度不允许超出100个字节。n
· 在f通讯 db 中,只允许声明数据类型bool、int、word和time。n
· 数据类型必须按以下顺序逐块排列:bool、int、word和time。在f通讯db 中每种数据类型排列必须是连续的,只允许使用一个块。n
· 对于数据类型bool,只允许声明不超过128个数据元素。n
· 数据类型bool 的数据量必须始终为16的整数倍(字限制)。如有必要,必须添加保留数据。n
在发送方创建和编辑完f通讯db ,接收方也要创建f通讯db ,长度和结构必须匹配对应发送方 f通讯db的长度和结构。n
2.3.2 调用通信应用程序块1. 发送数据方,在安全程序f-pb结尾时调用f应用程序块fb225 ”f_sends7” 以进行发送,如图2-11所示。n
图2-11 发送方调用f应用程序块fb225n
输入参数说明:n
send_db:填写创建的要发送数据的f 通讯db 编号n
timeout:安全相关的通讯的监视时间(以ms为单位)n
en_send:=1发送使能n
id:netpro中组态的s7连接的发送方的本地idn
r_id:f_sends7和f_rcvs7使用相同的值将发送和接收块相互关联n
每个地址关联(输入参数r_id)的值都是用户定义的;但是在网络中的所有安全相关的通讯连接中,它必须是唯一的。并且一旦确定了输入参数r_id的数值,那么值r_id + 1会被内部分配占用,不得使用。n
输出参数说明:n
error:=1 通讯错误n
subs_on:=1 接收方输出故障安全值 n
stat_rcv :sfb9/fb9 “urcv” 的错误代码(有关错误代码的说明,请参考sfb9的在线帮助)n
stat_snd:sfb8/fb8 “usend” 的错误代码(有关错误代码的说明,请参考sfb8的在线帮助)n
diag:诊断信息,提供与发生的通讯错误类型有关的非故障安全信息n
2. 接收数据方,在安全程序f-pb开始时调用f应用程序块fb226 ” f_rcvs7” 以进行接收,如图2-12所示。n
图2-12 接收方调用f应用程序块fb226n
输入参数说明(仅列举与fb225 ”f_sends7” 不同的参数):n
ack_rei:通讯发生错误,恢复正常之后对发送数据的重新集成进行确认n
rcv_db:填写创建的接收数据的f通讯db的编号n
输出参数说明:n
ack_req:=1 需要对发送数据的重新集成进行确认n
sendmode:=1 具有f_sends7 的f-cpu安全模式处于取消激活的模式n
有关f应用程序块的详细说明,请参考手册《simatic 工业软件 s7 distributed safety — 组态和编程》和step7在线帮助。n
2.4 通信测试将硬件和安全程序编译后分别下载到各自cpu中,使用变量表测试通信状态。在示例中,cpu416f-3pn/dp 将m200.0 到 m200.7 的8 个 bool 数据以及2 个 int 数据、1个word数据和1个time类型的数据传送到cpu317f-2pn/dp中。当发送方将发送使能m100.0置位后,接收方收到一致的数据,说明安全通信已经建立,如图2-13。n
图2-13 通信测试n
更多的s7分布式安全系统中安全相关通讯的信息请参考手册《simatic 工业软件 s7 distributed safety — 组态和编程》中的第8章节,对通讯进行组态和编程。手册下载链接:n
/cs/document/22099875?caller=view&lc=zh-cn
如果您对该文档有任何建议,请将您的宝贵建议通过下载中心的联系我们进行提交。该文档的文档编号:a0802
附录-推荐网址
自动化系统
西门子(中国)有限公司工业业务领域支持中心n
网站首页:www.4008104288.com.cn
自动化系统下载中心:http://www.ad.siemens.com.cn/download/searchresult.aspx?pid=1
自动化系统全球技术资源:http://support.automation.siemens.com/cn/view/zh/10805045/130000
基于产品的支持与服务主页:http://www.ad.siemens.com.cn/productportal/default.aspx
通信/网络
西门子(中国)有限公司工业业务领域支持中心n
网站首页:www.4008104288.com.cn
通信/网络下载中心:http://www.ad.siemens.com.cn/download/searchresult.aspx?pid=408
通信/网络全球技术资源:http://support.automation.siemens.com/cn/view/zh/10805868/130000