原创不易,请勿抄袭!
很多人可能听过或者用过这个软件,其实简单来说就是一个信息采集的系统,在工业中,对应的就是人机界面,类似于WINCC,INTOUCH,组态王等等,近几年在国内很火,今天和大家分享一下。
其实,建立自己的人机界面的方式有很多种,其中包括文中所讲的Labview,除此之外作者还使用过VB运用prodave驱动或者Libnodave驱动连接PLC数据制作画面,也非常好用。都是非常好用且有趣的应用,而且使用这些小众化的方式可以使得编出来的人机界面很高大上,最重要的是没有刻苦学习过的人无法更改或者判断故障,也就是不可替代性!搞工控的都知道不可替代性代表了什么,尤其是在每年数万电气自动化毕业生就业的前提下。
除了上述的目的,我觉得对于这些应用,一般的工控人员来讲只需要简单了解,需要用的时候再去研究学习即可,毕竟自动化知识不是纸上谈兵,没有实际应用再好的学生也学不来。
好吧,开始我们今天的案例!
一概述西门子S7-1200PLC支持多种协议通过以太网通讯方式,如OPC、TCP、S7、MODBUS-TCP等。TCP方式相比其它协议,具有更多的灵活性,更快的数据响应等优点,本人即介绍LabVIEW通过TCP方式与S7-1200PLC通信。
S7-1200PLC的TCP通信方式,称之为“开放式用户通讯”,通过以太网发送或读取数据。
二测试硬件和软件硬件包括:
博途S1200PLC:CPU1215C和PC一台;
软件包括:
博途TIAV14SP1和LabVIEW2012或以上版本
编程思路分为两步;
1PLC编程:配置PLC--添加发送和接收数据块--发送数据程序--接收数据程序--编译下载
2LabVIEW编程:创建TCP连接--接收或发送数据--关闭连接
三操作步骤3.1CPU配置
1打开TIAPortal,创建项目,添加CPU为1215C。
3在常规栏,选择PROFINET接口[X1]/以太网地址属性,设置CPU的IP地址,本例设置为192.168.0.10,如下图所示:

4在常规栏,选择系统和时间存储器属性,启用系统存储器字节和时钟存储器字节,如下图:

5如果传输的数据量大,且实时性要求高,可选择通信负载属性,把由通信引起的循环负荷由默认为20%,提高到50%。

3.2添加数据块

2打开该数据块PlcSData,添加数据,名称如ArySData,选择数据类型ArrayofByte,即字节数组,数组长度设置为10。

3修改数据块属性。选中数据块PlcSData,右键属性,在属性栏去掉优化的块访问,以支持绝对寻址模式。

4添加接收数据块。该数据块用于存储LabVIEW向PLC发送的数据。数据块名称PlcRecvData,数据类型ArrayofByte,操作方法同步骤1、2、3。

3.3编写发送数据程序
1打开Main程序
2添加指令通信/开放式用户通信/TSEND_C到程序段1,调用选项的数据块名称采用默认。

3配置TSEND_C的通讯参数。选中TSEND_C,右键属性,切换到组态页,选择连接参数属性。伙伴项选择未指定,连接数据选择新建,系统会自动创建一个连接数据,如PLC_1_S_DB。输入伙伴的IP地址,如192.168.0.12。由伙伴主动建立连接,PLC的端口可保留默认的2000。连接类型为TCP,连接ID采用默认值。(注:所谓伙伴即与PLC通信的另一方,可以为上位机PC、HMI等)

4配置TSEND_C的输入输出。TSEND_C在检测到参数REQ上升沿时执行发送作业,因此每次发送数据时,都应在REQ上产生一个脉冲,此处为了简便,调用系统时钟Clock_10Hz(每秒10次),周期性的发送数据。参数DATA为待发送的数据,此处调用数据块PlcSData。注意DATA采用纯符号寻址时,发送LEN应设置为0,而采用绝对寻址时,应设置为实际发送数据的长度。通讯状态参数DONE\BUSY等按需要连接。

3.4编写接收数据程序
1添加指令通信/开放式用户通信/TRCV_C到程序段2,调用选项的数据块名称采用默认。
2配置TRCV_C的通讯参数。选中TRCV_C,右键属性,切换到组态页,选择连接参数属性。伙伴项选择未指定,连接数据选择3.3步骤自动创建的数据,如PLC_1_S_DB,切记不要选择新建(此例的通讯连接为自动创建,因此发送与接收共用一个连接,必须保持一致才能正常通讯)。

3配置TRCV_C的输入输出。TRCV_C在检测到参数EN_R为1时启动接收。参数DATA为数据接收区,此处调用3.2步骤所创建的数据块PlcRecvData。注意DATA采用纯符号寻址时,接收LEN应设置为0,而采用绝对寻址时,应设置为实际发送数据的长度。通讯状态参数DONE\BUSY等按需要连接。具体参数信息请查看帮助文档。

4为了判断PLC是否正确接收到LabVIEW所发送的数据,可通过以下两种方法测试。
a、将第3.3的数据发送区设置为与数据接收区相同的数据块,即PlcRecvData,使PLC把接收到数据发送回LabVIEW。
b、添加MOVE指令采用数据移动的方法完成此功能,如下所示:

3.5编写LabVIEW程序
1)创建TCP连接TCPOpenConnection。输入PLC的IP地址192.168.0.10和端口号2000。

2)读取数据TCPRead。输入读取长度10(PLC程序的发送数据块长度为10个字节)。

3)发送数据TCPWrite。

4)关闭连接TCPCloseConnection。

3.6下载程序,连接测试
哎呀妈呀,累死我了,大家点个赞支持我一下呗!
喜欢的话请点赞并分享,您的支持是我坚持下去的动力!送人玫瑰,手有余香!