首次使用Labview,就遇到Labview与1200PLC的通讯问题,通过百度和请教别人,终于搞定。先将自己的经历分享出来,希望对大家有所帮助。
公司有个小实验台项目,需要上位机实现数据的采集、显示和存储。因公司同事都是做PLC编程的,没有上位机的经验,自己抱着学习的态度就接了这个项目。在多方了解后,选用了Labview作为上位机软件。上位机主要采集模拟量信号,做曲线显示和数据存储。因为自己擅长PLC,所以控制这块采用PLC来实现,选用1200PLC来做。PLC上所有的参数设置和显示也全部在上位机上实现。所有两者的数据交互必不可少。
通过百度,看到一般都选用TCP/IP通讯或OPC来实现。网上搜索到的TCP/IP都是需要在PLC侧写TCP/IP的程序来实现。在通过多方请教后、搜寻后,知道也有一种采用TCP/IP的方式,是不需要PLC侧编写程序的。Labview直接读取PLC的数据。而且西门子提供了一个叫Sanp7的通讯的开源库。这下感觉自己看到了曙光。于是继续搜索。找到了Sanp7的网站:Snap7 Homepage (sourceforge.net)并看到相应的教程。
在网站下载了一个snap7-full-1.4.2.7z文件,里面有详细的教程,参照案列教程,完成了通讯。PLC侧的设置如下:1:在设置组态-属性-防护与安全-连接机制里勾选允许来自远程对象的PUT/GET通讯访问
2:若要读取DB块的数据,在DB块的属性里取消勾选优化的块访问。
这样两步,PLC侧的设置就完成了。接下来就是编写程序了。
Labview侧,程序如下
1.png
3.png
2.png