S7ApiDriver

Navigation:  iCentroview系统的配置 > 配置客户端 > 服务端配置 > SCADA节点总览配置 > 驱动配置 > 西门子驱动 >

S7ApiDriver

Previous pageReturn to chapter overviewNext page

S7ApiDriver,简称为S7Api。该驱动需要SIMATIC NET软件及CP卡。

本驱动基于 SIMATIC NET - S7 Programming Interface 撰写,通过 SIMATIC NET 完成与西门子相应设备的通讯。因此本驱动需要安装该软件并作好相应配置,要点包括:

u使用Step 7

iCV SCADA 配置成为一个PC Station,并配置 应用(Application) 和网卡。

在应用上建立此PC Station与PLC/TDC CPU的S7连接并提供合适的 连接名(ConnectionName)。

u在iCV SCADA安装好的SIMATIC NET

首先要在Windows控制面板下的 设置PG/PC接口 中配好 应用访问点(Application Access Point) 并关联网卡。

导入PC Station的配置文件(通常此配置文件在Step 7 工程路径xdbs目录下,文件名如:pcst_1.xdb)。

u具体相关内容,参加西门子 Step 7 和 SIMATIC NET 的帮助手册。

 

本驱动对以下设备下进行了测试,其特性:

uS7-400:

测试场景下一个连接每秒请求次数为50次左右,每次可请求一个数据块中的200字节数据;

尚未测试:单驱动多线程、单驱动多连接,单CPU多连接、多CPU连接 等情况。

uTDC-CPU551:

不支持多线程:因此不能配置不同任务号;

不支持多连接:因此单驱动下只能配置一个设备;但可配置给一个PC Station多个连接,以运行多份本驱动(多进程)的方法提升采集量。

测试场景下,一个连接每秒请求次数为15次左右,每次可请求一个数据块中的200字节;

测试场景还包含:单CPU使用5个连接,及5个CPU各用一个连接两种情况,均是有效;

2014年12月测试发现,TDC下受吞吐总量Simatic Net限制,既是在多链接下数据慢且不稳定,因此建议TDC下不要使用本驱动

单进程单连接吞吐量为3KB/s上下,多个单连接进程的测试场景下,也只能达到5KB/s上下,不能达到用户需求。

将设备换成西门子S400,在单进程6个连接的测试场景下,达到15000KB/s上下。

不使用S7API,利用Simantic NET建立本地OPC服务,8000多字节刷新速率大概在3s,吞吐量并未改善。此一瓶颈在于Simantic NET与TDC设备的通讯能力。

相应对策可通过TDC直接建立SOCKET发送电文形式,可实现操作。

对应驱动[xcomdrv]由自动化维护,协议参考XCOM-PCS第7号电文。

经测试:TDC上建立3个连接,每个连接以6180字节每毫秒的频率发送数据,xcomdrv数据块刷新周期100ms,SCADA点刷新周期200ms,画面刷新周期100ms,可以达到300ms左右的刷新速率。

利用该协议TDC与xcomdrv两边代码均只可实现读数据,下发控制拟用SIMATIC NET的OPC方式。

 

主要包含以下步骤:

u添加S7ApiDriver驱动

u配置S7ApiDriver设备

u配置S7ApiDriver数据块

u配置S7ApiDriver变量


 

u添加S7ApiDriver驱动

1.首先,需要配置好相应的SCADA节点。

ICV_CONFIG_DRIVER_S7_5

 

2.双击SCADA节点下的驱动配置,进入驱动配置页面,在页面的左上方,可以看到“添加驱动”的按钮,点击添加驱动,弹出可用驱动的选择对话框,在可用驱动列表中,选择S7ApiDriver驱动所对应的“S7ApiDriver”,然后单击确定。

ICV_CONFIG_DRIVER_S7_13

 

3.签出该驱动,点击“配置驱动”按钮

ICV_CONFIG_DRIVER_S7_14

 

4.弹出S7ApiDriver配置的主界面

 

u配置S7ApiDriver设备

1.选择S7ApiDriver后点击确定按钮,签出S7ApiDriver,点击配置驱动按钮,系统弹出配置界面,在设备列表处点击鼠标右键,选择“创建设备”选项,如下图:

ICV_CONFIG_DRIVER_S7_17

 

2.系统弹出设备配置窗口,填入相关配置项,如下图:

ICV_CONFIG_DRIVER_S7_15

 

必填参数:

设备名称:不能为空,不能以数字开头

连接类型:必须为other

应用访问站点名称:应用访问点名称

任务号:同一任务号下的设备消息放在同一个进程中。

 

应用名”和“连接名”请参见使用Step 7中的解释

 

3.点击确定按钮,完成设备配置。

 

u配置S7ApiDriver数据块

1.选中已经配置的设备,在“数据块列表”中点击右键,如下图:

ICV_CONFIG_DRIVER_S7_11

 

2.选择“创建数据项”,弹出数据块配置界面,如下图:

DIRVER_S7_00

 

名称:名字唯一,由用户指定;

类型:包含DB、M、I、Q、PI_PQ(暂不支持)、C、T几种类型;

地址: 起始地址,DB块的最大长度238字节(协议限制值,具体依据实际设备而定)

元素个数:表示用户在数据块希望保存的变量记录数;

元素大小:表示数据块中每个变量占用的字节;

块号:块号,只对DB有效;

数据读取类型:驱动向PLC进行数据读取时采用的类型,目前建议仅适用B(字节)类型,并且C/T块不支持该类型为空即可;

相位:相位依据需要取值,一般默认即可;

任务号:不要修改,默认即可。

其他配置项使用默认项。

 

综上,数据块的配置最终的构成规则为:数据块类型[可选参数1(仅DB块有效)],可选参数2(仅支持B类型)[数据块地址],数据块字节长度(元素个数*元素大小),如 "DB5,B10,9"、"MB9,3" 等,以"DB5,B12,100"为例,其中数据块类型是DB,块号为5,数据读取类型为B,起始地址为12,数据块长度(元素个数*元素大小)为100。

 

配置说明

目前C/T两种类型只支持Tx格式的,如T1、T2、C5,C2等。其中x为此类数据块的地址,必须为整数 

DB/M/Q/I/PI/PQ类型的地址目前仅支持起始地址<index>的方式,即地址只支持字节类型的起始地址 

C读取的原始数据是BCD编码,驱动中暂时按原始字节顺序转为16进制表示

具体配置可参考西门子官方SAPI的说明文档:http://www.ad.siemens.com.cn/service/answer/category.aspx?cid=1031

 

3.配置完毕后,点击“确定”按钮,完成数据块配置。

4.配置完毕后,关闭配置界面,将S7ApiDriver签入则完成配置操作。

 

u配置S7ApiDriver变量

添加变量参见新增变量

注意:配置完成后需要部署到scada节点,使得配置生效。

 

配块方式下的变量配置

布尔量(DI/DO):对应的设备地址格式为 数据块名:bx ,如DataBlock0:b0,DataBlock0为数据块名,b为布尔类型,0为数据块起始地址的偏移量.

文本(TXT):对应的设备地址格式为 数据块名:y#z 如DataBlock0:0#50,DataBlock0为数据块名,0为数据块起始地址的偏移量,#为特殊标示符,50为读取的长度

8位有符号整数/8位无符号整数/16位有符号整数/16位无符号整数/32位有符号整数/32位无符号整数/单精度浮点数/双精度浮点数:对应的设备地址格式为 数据块名:Bx 如DataBlock0:B0

 

其中,x为数字标号,表示相对于数据块起始地址的偏移量,最小值为0,最大值为数据块长度-1;

当变量为文本时,y为读取的相对于数据块起始地址的偏移量,#为特殊标示符,z为的需要读取的长度。