一、概述
Hilscher NETLINK用于将西门子MPI协议转换为以太网TCP/IP协议,并提供公开的无需授权的驱动函数库。
NETLINK有三种应用:
1、对于仅仅需要STEP7编程监控和WINCC监控,安装IBHNET127驱动即可,该驱动安装后将在控制面板的Set PG/PC Interface中添加IBHNet MPI/PPI/Profibus三个驱动连接;将STEP7(S7 ONLINE)和WINCC(MPI)的访问点指向以上驱动连接即可。
2、对于第三方组态软件(如KingView、iFix等)通过NETLINK访问PLC,选择我公司开发的OPCServer。
3、对于VB或者VC++(6.0以上版本)的自行开发界面,有两种方法实现通讯:
l 调用Hilscher提供的IP Driver驱动函数库进行通讯;
l 使用winsock控件进行通讯;
本文对在VB6.0中通过Hilscher IP Driver驱动库读写S7300/400 PLC数据的基本开发步骤作简要描述,具体资料可以参考NETLINK光盘netDEVICE System Software中的Nlmpi_pie.pdf和Drv_Ip.pdf文件,该光盘可到 http://www.gkong.com/co/beichen-automation/index_download.asp 页面中下载。
二、平台和配置
1、平台:WINDOW2000+SP4,Microsoft VB6.0;
2、软件和驱动安装:Hilscher SYCON软件和IP Driver;
3、硬件要求:NETLINK电缆一根,西门子S7300 CPU一台(如CPU314),以太网交换机一台(如TP-LINK),以太网电缆;
4、系统配置:如下图所示
三、NETLINK参数配置
如上图所示,将计算机网卡的IP地址配置为192.168.1.10,将NETLINK的RJ45端口链接到交换机端口上,另一端插入CPU314的MPI通讯口,NETLINK是由CPU314的MPI口供电的。如果CPU上已经连接了其他监控设备如触摸屏,则可以选用西门子带编程口的网络插头。
在NETLINK链接到MPI端口后的三分钟内(上电三分钟内)运行[开始]-[程序]-[Hilscher IP Driver]-[NetIdent Demo Program],点击[Start Poll]按钮自动查找网络上的NETLINK,找到后将会显示NETLINK信息,NETLINK出厂默认IP地址为0.0.0.0,选择显示的NETLINK并点击[Set IP]按钮,设置IP地址为192.168.1.88;如果软件找不到NETLINK,请用PING命令检查网络是否链接正确。
注意1:通过NetIdent设定的IP地址是临时的,在NETLINK再次上电后将自动恢复到原来的IP地址;
注意2:NETLINK上电的三分钟内允许通过NetIdent设定其IP地址,三分钟后设定将被拒绝;
设定好NETLINK的IP地址后运行[开始]-[程序]-[SyCon System Configurator],新建项目并添加NETLINK设备,双击NETLINK并设定网络参数,IP地址设为192.168.1.88,选择自动检测接口和自动速率识别,NETLINK的MPI地址设定为1(注意不要和MPI网络上其他站点地址冲突);设定好参数后将其下载到NETLINK。(具体可以参考《NetLINK和IBHNet驱动在SIEMENS STEP7 WINCC中的使用说明.doc》中的描述)
注意3:通过SYCON软件设定的IP地址是永久固定的,在NETLINK再次上电后不会改变;
四、IP Driver参数配置
运行[开始]-[程序]-[Hilscher IP Driver]-[IP Driver Setup],在Connection 0中输入NETLINK的IP地址:192.168.1.88、1099、TCP、Client、5000;
运行[开始]-[程序]-[Hilscher IP Driver]-[IP Driver Test],在菜单[Connection select]中选择Connection 0,连接后进行其他菜单的测试,如[Driver Info]等,如果测试正常说明IP Driver已连接到NETLINK。
五、VB应用
应用举例:
1、 按下[循环启动]按钮后周期性读取MW0的数值(间隔100ms),直到按下[停止]按钮。
2、 按下[写入新值]按钮命令将新值写入MW0。
3、 [复位NETLINK]按钮初始化NETLINK。
演示界面如下图所示:
开发步骤:
1、 新建VB EXE工程,将NETLINK光盘中Api\Demo\VBASIC32\CIFUSER.BAS模板文件复制到VB工程中并取消只读属性;然后添加到工程中,打开CIFUSER.BAS模板,加入以下常数申明:
新增常数
Public Const TASK_TDT_UINT8 = 5
Public Const TASK_TFC_READ = 1
Public Const TASK_TFC_WRITE = 2
2、 新建模块Module1,添加以下公共变量和API函数:
Public Const usSize = 288 消息长度常数=288
Public SndMsgRead As MSG_STRUC 读取MW0数据的消息
Public SndMsgWrite As MSG_STRUC 写MWO数据的消息
Public SndMsgReset As MSG_STRUC 复位NETLINK的消息
Public RcvMsg As MSG_STRUC 接收消息
WWW_PL※CJS_COM-PLC-技.术_网