《S7FW驱动》该驱动支持与西门子的S7系列PLC之间的通讯,采用TCP通信的命令方式,支持的硬件型号为S7-400。该驱动需要SIMATIC CP卡。
主要包含以下步骤:
1.首先,需要配置好相应的SCADA节点。
2.双击SCADA节点下的驱动配置,进入驱动配置页面,在页面的左上方,可以看到“添加驱动”的按钮,点击添加驱动,弹出可用驱动的选择对话框,在可用驱动列表中,选择S7FWDriver驱动所对应的“S7FWDriver”,然后单击确定。
3.签出该驱动,点击“配置驱动”按钮
4.弹出S7FWDriver配置的主界面
1.选择S7FWDriver后点击确定按钮,签出S7FWDriver,点击配置驱动按钮,系统弹出配置界面,在设备列表处点击鼠标右键,选择“创建设备”选项,如下图:
2.系统弹出设备配置窗口,填入相关配置项,如下图:
必填参数:
❖设备名称:不能为空,不能以数字开头
❖连接类型:必须为other
❖设备IP:实际设备的ip,如:168.2.8.146
❖读端口:实际设备中配置的读取数据所用的端口
❖写端口:实际设备中配置的写入数据所用的端口
❖任务号:同一任务号下的设备消息放在同一个进程中。
3.点击确定按钮,完成设备配置。
注意:S7FWDriver驱动支持免配块方式,若该设备下没有配置任何块,相应的变量配置参见免配块方式下的变量配置 。
1.选中已经配置的设备,在“数据块列表”中点击右键,如下图:
2.选择“创建数据项”,弹出数据块配置界面,如下图:
❖名称:名字唯一,由用户指定;
❖类型:包含DB、M、I、Q、PI_PQ(暂不支持)、C、T几种类型;
❖地址: 起始地址,取值限制如下:(协议限制值,具体依据实际设备而定)
DB: 0~8091(2047 Double Words)
M、PI_PQ: 0~255
I、Q: 0~127
C、T: 0~2047
❖元素个数:表示用户在数据块希望保存的变量记录数;
❖元素大小:表示数据块中每个变量占用的字节;
❖块号:只对DB有效,必须大于0,范围1~255;
❖相位:相位依据需要取值,一般默认即可;
❖任务号:同一个设备的数据块的任务号必须一致。
其他配置项使用默认项。
注意: 元素个数*元素大小:表示整个数据块的字节数,需要满足以下限制。
C、T:必须为2,只有一个word大小,只能配置成元素个数为1,元素大小为2
I、Q:范围1~128
M、PI_PQ:范围1~256
DB:范围2~4096(建议不超过1000), 建议配置成元素大小为2 ,元素个数为范围内任意值。
C、T、DB存取以字WORD为单位。
起始地址+元素大小*元素个数=不得超过地址的取值范围的上限。
具体配置可以查询西门子官方网站,参考《西门子PLC实现基于CP的FETCH WRITE使用入门》。
3.配置完毕后,点击“确定”按钮,完成数据块配置。
4.配置完毕后,关闭配置界面,将S7FWDriver签入则完成配置操作。
添加变量参见新增变量 。
注意:配置完成后需要部署到scada节点,使得配置生效。
DB<no>,[<typ>]<index>[,<number>]
DB<no>,[<typ>]<index>.<bitnr>[,<number>]
DI<no>,[<typ>]<index>[,<number>]
DI<no>,[<typ>]<index>.<bitnr>[,<number>]
<range>[<typ>]<index>[,<number>]
<range>[<typ>]<index>.<bitnr>[,<number>]
这里设备地址是一个多对多结构,如上所述,其中[]为可选的部分,详细说明如下:
⟡no:表示块号,必须>0,最小值为1。S7FW驱动上限255。
⟡typ:表示协议内部向PLC请求的数据类型,目前iCentroView的S7FW驱动均仅支持类型B(可以空缺)。
⟡range:指代DB、DI(暂不支持)以外的块类型,目前支持的有M、I、Q、C、T块,而PI、PQ块暂不支持(需要PLC设置)。
⟡index:表示以byte(字节)为单位读取的偏移量,具体表示变量相对于PLC中块的起始地址的字节偏移量。
⟡index.bitnr:表示以bit(位)为单位读取,具体表示变量相对于PLC中块的起始地址的字节偏移量,以及字节内的位偏移量(从第几位开始)。
⟡number:表示读取长度,与index结合时表示字节长度,与index.bitnr结合时表示位长度。number作为字节时,限制详见S7FW驱动的块长度(元素个数 * 元素大小[字节])限制。
注意:当配16位与32位数据类型时需要进行高低字节转换。
合法的变量地址举例:
变量名称 |
变量类型 |
数据类型 |
设备地址 |
db3b1_12_txt |
TXT |
字符串 |
DB3,B1,12 |
m2_12_txt |
TXT |
字符串 |
MB2,12 |
db2b10_2_16bit |
AI |
16位 |
DB2,B10,2 |
db2b12_1_8bit |
AI |
8位 |
DB2,B12 |
db1_1_4_32bit |
AI |
32位 |
DB1,1,4 |
m1_2_16bit |
AI |
16位 |
MB1,2 |
m4_1_8bit |
AI |
8位 |
M4,1 |
c_1 |
AI |
16位 |
C1 |
c_2 |
AI |
16位 |
C2 |
t_1 |
AI |
16位 |
T1 |
t_2 |
AI |
16位 |
T2 |
m1_0_1 |
DI |
bool |
M1.0,1 |
不合法的变量地址举例:
变量名称 |
变量类型 |
数据类型 |
设备地址 |
错误原因 |
db3b1_1_6 |
TXT |
字符串 |
DB3,B1.1,6 |
1.1后长度只支持1,且用于TXT类型也不匹配 |
db0b2_2_16bit |
AI |
16位 |
DB0,B2,2 |
0块不可用 |
m1_0_2_8bit |
AI |
8位 |
M1.0,2 |
1.0后长度只支持1,且与变量类型AI不匹配 |
m1_0_2 |
DI |
1位 |
M1.0,2 |
DI变量实际只读1位,1.0后长度仅支持长度1 |
⟡布尔量(DI/DO):对应的设备地址格式为 数据块名:bx ,如DataBlock0:b0,DataBlock0为数据块名,b为布尔类型,0为数据块起始地址的偏移量.
⟡文本(TXT):对应的设备地址格式为 数据块名:y#z 如DataBlock0:0#50,DataBlock0为数据块名,0为数据块起始地址的偏移量,#为特殊标示符,50为读取的长度
⟡8位有符号整数 / 8位无符号整数:对应的设备地址格式为 数据块名:Bx 如DataBlock0:B0
⟡16位有符号整数 / 16位无符号整数:对应的设备地址格式为 数据块名:Wx 如DataBlock0:W0
⟡32位有符号整数 / 32位无符号整数:对应的设备地址格式为 数据块名:DWx 如DataBlock0:DW0
⟡单精度浮点数:对应的设备地址格式为 数据块名:DWx 如DataBlock0:DW0
⟡双精度浮点数:对应的设备地址格式为 数据块名:FWx 如DataBlock0:FW0
其中,x为数字标号,表示相对于数据块起始地址的偏移量,最小值为0,最大值为数据块长度;
当变量为文本时,y为读取的相对于数据块起始地址的偏移量,#为特殊标示符,z为的需要读取的长度。
1.打开SIMATIC manager,在常用工具栏点击 “Config Network” ,如图所示:
2.在打开的NetPro窗口,单击西门子CPU417,出现表格,如图所示:
3.选中下面的一个表格右击,选择Insert New Connection,在Insert New Connection窗口,选择TCP connection,如图所示:
4.点击OK,弹出TCP connection属性窗口,在option标签下配置Fetch passive(再建一个连接选择Write passive),在Address下配置LOCAL的IP地址和Port号即可。如图所示,Write passive的同上。
5.保存配置,将网络下载到PLC。