西门子PLC与Labview通讯可以通过OPC,S7.net,HSL等第三方的库来实现,NI也针对西门子开发了S7通信模块,且该模块完全免费。可以通过vi package manager搜索S7netCOM下载安装,安装完成后可以程序框图中函数选板的互连接口S7netCOM中找到。
在函数面板中,集成了一个S7netcom simple Test.VI可以直接跟据该案例了解每个API的功能。
S7netcom的API功能中,主要包含以下几个VI。
1、Create Object.VI
该VI用于创建连接对象,其中IP Address为PLC的IP地址。Port默认为102,slot为槽号,RACK为机架号,以上信息需与组态配置何持一致,
2、Open Connection.VI
该VI用于打开PLC连接。前提是需要先通过Create Object.VI创建连接对象。
3、初始化时,可以创建链接对象,并打开链接。如下图所示;
4、Read Data Array .VI
该VI用于读取PLC数据,
Memory Area-存储区,可以选择M区、I区、Q区等。如下图所示;
Data Block#-数据块,默认是1;
Start Address-输入数据的开始地址;
Read Length,表示读取的数据长度;
5、如下图所示,则可以完成对DB7的byte0-byte13的数据读取。
6、也可以调用Read Data Scalar.VI来对某个寄存器地址单个读取,用与与数组读取类似,这里就不过多介绍了。
7、Write Data.VI(array)
该VI用来成组写入寄存器存储区。
8、Close Connection.VI
在退出程序前,需调用该VI来结速与PLC的连接。
总结:
NI开发的S7netcom接口与HSL类似;使用起来比较方便。可根据个人习惯来使用。