首页 上一页 1 2 下一页 尾页

我就说说我这几天都在干什么吧 点击:8343 | 回复:35



王者之师——小刀刀

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 337回
  • 年度积分:0
  • 历史总积分:157
  • 注册:2013年3月01日
发表于:2015-04-06 16:56:02
楼主

事情的起因是这样的:

老板在长沙有一家做三菱代理的公司,那边只有两个人(听说),没有技术支持!

于是那边的人总是给我打电话,叫我给某某客户回个电话。

某天那边有个客户问labview能不能和L系列的PLC通信,我帮他百度了一下。肯定能啊!

这边有个销售也管管那边的客户,于是他让我给客户做个例子,我草,我在公司又不做软件的。

他又让公司一个软件工程师的给做,别人就说要很长时间先学习一下labview。

气氛一下子尴尬了。

我想想以前找工作的时候也了解过labview,于是答应他明天给他做一个demo。都以为我忽悠他的,不过气氛也缓和了。

于是就开始下载软件了。。。。那个销售就是个傻叉,客户也是傻叉+无赖(后面会说到)


当天晚上还吃了年夜饭,被迫喝了酒。下次再要喝酒就不去了






明亮天空

  • [版主]
  • 精华:1帖
  • 求助:14帖
  • 帖子:210帖 | 5299回
  • 年度积分:0
  • 历史总积分:19623
  • 注册:2008年5月15日
发表于:2015-04-06 17:07:24
1楼

讲故事啊,我喜欢听,继续。。。。。。

王者之师——小刀刀

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 337回
  • 年度积分:0
  • 历史总积分:157
  • 注册:2013年3月01日
发表于:2015-04-06 17:16:49
2楼

年夜活动完回去就1点多了,喝多了头疼也不想睡,就开始装labview。装了一个多小时,N多个模块。

边装边下载手册看,百度问问也看。好像很简单

装完第一个就是找找能不能用ActiveX咯,控件菜单里翻了个遍终于找到这个了

这下嗨皮了,因为以前学C#的时候用过三菱的通信组件(就是动态链接库)

直接拖到前面板,就找找怎么加载我的OCX

搞搞搞,OCX的属性设置好,又看了一个labview自带的VI,用了一个while循环。就OK了

又搞搞搞,先和GX的sim2通信试试,可以咯


然后关了电脑去厕所吐了一下,白吃了,都吐出来了。真不知道喝酒有啥意思

王者之师——小刀刀

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 337回
  • 年度积分:0
  • 历史总积分:157
  • 注册:2013年3月01日
发表于:2015-04-06 17:31:08
3楼

然后睡了三个小时就醒了,好兴奋啊。labview真简单啊

于是开开心心地去公司了,拿了个LPLC,改了一下ActiveX的属性(连LCPU)

正常读写,程序打包就给那个销售发过去了

没多久他跑过来问我发的什么,我晕


这件事我以为就这样了,后来又打电话来让我把程序转成2014的,还要三菱的组件,还问怎么用ActiveX,函数怎么用,属性怎么设,一连串没完没了。我还以为他搞labview应该很熟悉才对啊,怎么比我还菜。


王者之师——小刀刀

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 337回
  • 年度积分:0
  • 历史总积分:157
  • 注册:2013年3月01日
发表于:2015-04-06 17:52:45
4楼

  后来我也开始对labview感兴趣起来,学的时候,也碰到过很多问题,相对于文本语言很多不方便。

  很多次都不想玩这个了,百度问问也搜了很多。

  每次都想,NI推出labview都快30年了,不会这么点小问题都解决不了的。


然后就自己不停地百度,看论坛。人多论坛都去翻,前十页!


直到现在我,回头看当初给别人的demo,读写几个点很方便,也没有做具体的控制。要是在项目中用,这样真不是一般的繁琐。

在翻论坛的时候偶尔发现几个行家,就看他们以前的主题和回帖。收获良多

发现一种更高效,更傻瓜的设计思路。

就是OPC Sever + DSC + Labview简单配置一下就OK了


OPC Sever可以是下位机厂家自己的,也可以是NI的(听说是买的KEPserver)。

这里要说一下,我以前是有下载过三菱的MX OPCsever的。后来发现没用(实际上是不会用),只用到他的OCX,然后删了,下MX Component注册一堆组件。用了一个ActProgType动态链接库。

要是用文本语言的话,用这个动态链接库还是很方便的。它可以连所有的三菱PLC,所有的网络路径都OK。超级好用。


不过在labview里面稍微复杂一点的程序就相当麻烦了,读连续的地址还要用个FOR循环。(也可能是我还不太会labview的程序设计,哈哈哈)百度查了说用通知器和队列可以解决。不过我更喜欢傻瓜一点的啊


王者之师——小刀刀

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 337回
  • 年度积分:0
  • 历史总积分:157
  • 注册:2013年3月01日
发表于:2015-04-06 18:07:30
5楼

现在终于搞清楚OPCSever的强大之处了,

我们公司现在软件开发思路和这个也类似,就是做一个采集程序,把数据实时存在SQLSever里面,软件和SQLSever实时通信。其实这个采集程序也相当于一个OPCSever,可以重复利用。因为在软件里面直接和下位机通信的话,效率会很低。也很难做,也相当卡。


以后如果有机会自己做软件的话,首先找下位机厂家的OPCSever,找不到就用NIOPCSever.再也不去自己用OCX了,也不管它的属性什么意思,函数怎么用了。用OPC一直点击下一步就行了。


先去吃饭了

王者之师——小刀刀

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 337回
  • 年度积分:0
  • 历史总积分:157
  • 注册:2013年3月01日
发表于:2015-04-06 18:14:20
6楼

这里是昨天冥思苦想出来的一个程序结构,用两个数组储存采集数据和写入数据,试了一下,还是不太好用,有1秒左右的延时。用通知器和队列应该会好点,可以我还没搞懂。虽然不用ActiveX控件了,但是程序设计方面还是有研究价值的。对自己的水平也有提高


银光人生—华

  • 精华:11帖
  • 求助:4帖
  • 帖子:1445帖 | 13593回
  • 年度积分:0
  • 历史总积分:56442
  • 注册:2007年11月23日
发表于:2015-04-06 19:15:13
7楼

好!赞一个                        

今生缘

  • [版主]
  • 精华:50帖
  • 求助:25帖
  • 帖子:5376帖 | 9972回
  • 年度积分:6441
  • 历史总积分:106074
  • 注册:2011年3月02日
发表于:2015-04-06 22:10:24
8楼

这种帖子很好,讲述工控人自己的故事,赞

小诚

  • 精华:16帖
  • 求助:64帖
  • 帖子:680帖 | 7261回
  • 年度积分:350
  • 历史总积分:31975
  • 注册:2012年9月27日
发表于:2015-04-06 22:29:00
9楼

明天这帖子要受精

感谢楼主辛苦写帖子,NI的研讨会参加了几次,关于NI的产品,就用过一点Multisim

这个labview一直没搞清楚怎么回事。

继续关注。

王者之师——小刀刀

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 337回
  • 年度积分:0
  • 历史总积分:157
  • 注册:2013年3月01日
发表于:2015-04-06 23:05:09
10楼


回复内容:

对: 小诚 明天这帖子要受精感谢楼主辛苦写帖子,NI的研讨会参加了... 内容的回复!

斑斑这么关注,那我继续写写咯!

labview是一种开发环境,配合他们家的仪器用起来相当爽(听说的,没用过好像很贵)。当然也可以像一般的编程语言一样开发桌面软件,游戏什么的。


大家比较熟悉的使用可能就是开发上位机软件咯

王者之师——小刀刀

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 337回
  • 年度积分:0
  • 历史总积分:157
  • 注册:2013年3月01日
发表于:2015-04-06 23:27:13
11楼

接着上面的说哈

先说说OPCSever,别人那么多牛叉公司一起搞了个OPC基金会,发布统一的标准,自然说明了OPC的用处之大,我们公司还在自己用OCX开发“采集程序”,想想也够无语的。可能是为了省钱。一套OPCSever也要点钱(不过网上注册机,产品ID什么的也是一大吧)。

有支持很多品牌下位机的OPC,比如KEPWare,NIOPCSever,还有各种组态软件的OPCSever(有的叫数据采集程序,跟组态软件一起卖,按点数收费的,真是不厚道),每个厂家也有自己专用的OPC。

OPC的运作机制一般是这样的,按照下位机的通信协议与下位机握手,数据存在数据库里(一般是SQLSever和ACCESS),轮询机制,有的支持局域网远程访问。

所以数据库是实时刷新的,上位机跟OPC通信其实就是跟数据库通信(我自己的理解

我刚开始是怀疑到了软件界面上会不会延时很久。


后来看到NI的官网上的工程师说,通过labview的DSC模块和OPC通信,最快1秒中采集6500次,不知道是不是吹牛,哈哈哈。我只要肉眼看不出来延时就非常嗨皮了。

王者之师——小刀刀

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 337回
  • 年度积分:0
  • 历史总积分:157
  • 注册:2013年3月01日
发表于:2015-04-06 23:46:04
12楼

中间插一下,节前发生的一件事。也是写“我这几天在干嘛”的原因。还是那个客户打电话来说同时与20套PLC通信卡得很,我让他把20个PLC自己组一个网络,取其中一个做服务器,上位机只和服务器通信。

他又说不会PLC,得那我晚上给他做了个主PLC的程序,映射地址分配的好好的发给他了。(晚上给他做的,白天工作很多)。

第二天下午他还说卡,没一会那个销售跑来了,说让我想办法。我艹,我有什么办法。他们自己用Labview的肯定很有经验了啊。我又不搞那个。

销售又说他们买了PLC不肯付款,我好像明白了什么。真是无赖啊

我跟他说,是他们软件设计不行。销售也是个无知,一直念叨让我帮他们搞快一点。我真是又好气又好笑

后来还跑去跟老板说了,还好老板也懂电气和软件,问了一下具体情况就说让软件工程师想办法。


然后就放假了,我不停的看资料,百度。

百度搜不到就用可一找到很多国外的论坛。找资源就用 ,推荐给大家


王者之师——小刀刀

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 337回
  • 年度积分:0
  • 历史总积分:157
  • 注册:2013年3月01日
发表于:2015-04-06 23:55:19
13楼

所以这几天我一直在寻找更高效的通信方法。

前两天一直把心思放在软件结构上了,当然通过优化软件结构可以解决问题的,还能提高编程水平。但那也不是一天两天就能搞得定的。

看了很多用串口通信的例子,就是用Labview自带的visa,还有用MSCOMM的(都十几年前的东西了)数据量都很小,还有什么错误处理啊什么的,看的头晕。当然要是搞嵌入式开发这个也是没办法的了。


王者之师——小刀刀

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 337回
  • 年度积分:0
  • 历史总积分:157
  • 注册:2013年3月01日
发表于:2015-04-07 00:03:43
14楼

还是早点切入正题吧,时间也不早了。

labview和OPC通信有两种办法:

一个是用DataSocket,这其实也是一项先进的技术。用起来也很简单,只不过我在用的时候,下面有一行小字“NI建议用户使用共享变量来绑定数据”。本来用的很嗨的,看到这句话就有点不爽了。

用DataSocket直接绑定OPC服务器的标签就行了。


王者之师——小刀刀

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 337回
  • 年度积分:0
  • 历史总积分:157
  • 注册:2013年3月01日
发表于:2015-04-07 00:26:04
15楼

第二种就是DSC+共享变量了。

看到那句话后,我就按他说的翻帮助文件,里面都是一笔带过。

妈蛋不知道什么意思,又去看官网的介绍。说30点一下可以用DataSocket,30点以上建议用DSC+共享变量。(说句题外话这个DSC是个工具包要额外收费的,当然我可以找到注册机,哈哈哈哈)

于是就下了DSC模块,里面竟然还包含了NIOPCSever,哈哈哈。虽然期间出了点意外重装了几次,总的来说是很愉悦的。

看了一下NIOPCSever,好家伙,支持好多种PLC呢,基本上大公司的PLC都有,还有modbus主从都支持。于是我翻到了三菱的,基本都支持,不过关于各种网络路径的通信不太详细。也不支持和仿真软件通信,这下我怎么测试呢。手上也没有硬件。

于是我就用了三菱自己的OPCSever,组态好后,打开编程软件,启动仿真,开始搞起来了。


搞着搞着发现用共享变量怎么搞也通不上,用DataSocket就好好的。于是我开始怀疑这个DSC起来了。搞什么飞机啊


然后又开始疯狂的百度“labview 第三方OPC”关键词,尼玛百度看了前面五六页,也没找到个所以然。百度你真是够了。于是就用了上面说的“谷粉搜搜”(故名思议咯,可以翻墙的,哈哈哈)。

结果第一条就找到答案了,官网上的。原来是这个我的MXOPC拒绝了NI的“共享变量”,哈哈哈哈。OK,按它的步骤,顺利解决。

现在可以利用DSC+“共享变量”跟我的MXOPC通信了,用编程软件仿真也OK。


还有,这个共享变量确实效率高多了,在项目树下面配置好后,直接拖到前面板后面板都可以。真是爽歪歪啊。我在MXOPC设置的采集间隔是100ms肉眼看不到延时。哈哈哈哈哈



可读可写。


江湖再见-余辉

  • [管理员]
  • 精华:56帖
  • 求助:47帖
  • 帖子:3935帖 | 28210回
  • 年度积分:3677
  • 历史总积分:115590
  • 注册:2006年4月25日
发表于:2015-04-07 11:06:41
16楼

楼主还真是个很有能耐的工程师

w0518027

  • 精华:0帖
  • 求助:1帖
  • 帖子:2帖 | 387回
  • 年度积分:0
  • 历史总积分:360
  • 注册:2012年12月25日
发表于:2015-04-09 08:50:30
17楼

opc很时髦啊.........................

五行学说

  • 精华:5帖
  • 求助:2帖
  • 帖子:35帖 | 146回
  • 年度积分:0
  • 历史总积分:409
  • 注册:2009年5月21日
发表于:2015-04-10 20:33:30
18楼

楼主辛苦,此贴给我辈指了一条明路。

王者之师——小刀刀

  • 精华:1帖
  • 求助:0帖
  • 帖子:2帖 | 337回
  • 年度积分:0
  • 历史总积分:157
  • 注册:2013年3月01日
发表于:2015-04-11 00:35:13
19楼

昨天还是去了那个客户那里了,

找不到OPCServer支持新款的L系列PLC,

于是只能考虑其他途径了,

商量之后决定用套接字UDP协议通信(是不是看起来很复杂?那你就大错特错了)。在这之前我也是以为什么协议啊什么的搞的头晕,可能是被别人误导了。

UDP算是相当简单的了,刚开始我还担心它不可靠,毕竟要与20套PLC通信,所以要建立20条通道。

试了一下基本看不出延时。这可能就是labview的自动多线程的效果了吧。

无线局域网搞起,也相当方便调试。

琥珀青龙

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 25回
  • 年度积分:0
  • 历史总积分:9
  • 注册:2009年5月22日
发表于:2015-04-13 17:00:09
20楼

说了一大堆都是什么玩意儿


相关主题

官方公众号

智造工程师
首页 上一页 1 2 下一页 尾页