上个月16号,领导找到我,说有一个技术调研,去浙江一家客户那里,调研我们的产品接硬件设备的可行性。
第二天就出发,同去的还有我们的需求和另一位开发经理。于是赶紧订第二天的机票。
17号中午,我们三个人来到了机场,坐上了北京到杭州的飞机。下了飞机打车去火车站,做了两个小时的火车到达目的地--长兴。
因为已经有几个项目上线,所以那边有我们公司的人,到达后正好赶上吃晚饭。
饭后,又去了县政府前面的大广场溜达了一圈,悲催的是,我感冒了。。。
4.18,坐上客户的车,我们直接来到了位于郊区的水泥厂,见到了我们要主要调研的设备--定值灌装。
此行的目的也是为了它,要把设备集成进我们的系统,由于我们的系统是java开发的,也就是要用java读取和控制设备,在来之前,虽然也大概了解了一下,但由于之前一点经验都没有,根本就没有头绪,幸好同行的同事来之前让我们售前唐博士大概培训了一下,大概知道是什么东西,重要的是,他给了我们一个以前做过这方面东西的一位朋友的电话。
于是当天晚上,同事就给唐博士的这位朋友打了电话,大体知道了可能用到的协议--设备是PLC控制的,协议主要有modbus,profibus,opc,上网找了下java相关的jar包,还真找到几个--modbus有modbus4j,opc的有org.openscada.utgard项目。
4.19,去了客户的另一个厂子,调研船运相关的设备(分支任务,但客户迫切需要)。
4.20中午,去现场看到定值灌装设备是用西门子的opc server控制的,于是拿出找到的
org.openscada.utgard ,测试---不成功,始终就是连不上。
4.20晚上(周五),找到一个opc server模拟器,再测试--还是不行,难道是org.openscada.utgard有问题。
因为很晚,并且已经很急躁,脑子也已经乱了,加上第二天周六,客户现场去不了,于是睡觉。
4.21(周六)起床后就上网找其他的java连接opc的jar包,又找到一个----jeasyopc。
测试--不通--看异常--修改测试-------竟然通了,把模拟opcserver的数读出来了!
又尝试写数据--失败,查看了一下异常,原来是选择的命令是只读的。换了一个,通了!
模拟的出来了,现场的又会怎样呢?? 由于赶上周六,不能去现场,下午和同事在长兴逛了一下,晚上又打了会牌。
周日一天就大概修改了一下demo程序,学习了一下modbus、plc的知识。
4.23---去客户现场,测试opc的读数、折腾了20分钟后,读出来了!
开始尝试控制,定值灌装主要有 放料口上升、下降、放料等几个操作,我们决定选择一个危险性较低的--上升,可是尝试了几次都失败了,因为要写的寄存器地址是个bit[64]的数组,我们不知道这个数组的结构,于是尝试用控制机柜上的按钮来操作--上升、下降---查看opc server的数据是否改变,但这时悲剧发生了--在快下降到地面后,又上升的时候,突然咔吧一声,吊起放料口的钢丝绳断了! 放料口(大概几百斤)直接自由落体下来,幸好中间有个大铁管连着,在离地面半米左右的地方停住了。我和同事当时有点蒙,于是给在这边的公司的顾问打电话,说明了情况。后来厂里来人检查后得出结论,由于设备没有保护,在下降到一定程度后,钢丝绳会绞到一起,在上升后,就会拉断。调试时调试不了了,我们灰溜溜的就回来了。
最终的结果是设备维修,我们需要等待几天,客户很好,领导问了下人员安全和设备损失后说修好后再让我们去调试,让我们不要有心理负担。
4.24 再次去船运的厂子调研船运的设备---当然没敢控制,只是读数。但是也查看了他们的控制命令-。
经过测试,四个设备有两个设备使用opc server,一个设备使用了串口,这三个设备直接把数都读出来了,最后一个设备用的是modbus协议,用网上找到的例子也连接上并读出数据了---但是看不懂。
4.25(周三)再次去看modbus设备,通过打电话找人请教才知道原来是需要计算的,由于暂时无法找到如何计算,modbus的设备就此作罢。
4.25日中午,经过沟通,我们下午可以去定值灌装的厂子了。于是怀着一颗忐忑的心,我们又来到了我们弄坏的设备那里,这次学乖了,通过前几天的讨论,我们一致认定:不调试上升下降了,找个更安全了,最终我们选择了除尘器,命令简单-开、关。危险性小--实际上就是一个抽风机。
通过观察,找到了开关的命令--测试、失败。修改--测试,只听轰的一声,除尘器开了!!!!当时的心情简直。。。。
一分钟后,我发了一条只有5个字的微博:除尘器动了!
其实这次去 一共用了不到20分钟就调通了,结果也在我的意料之中--因为之前补习了不少知识。但听到除尘器开了的那一霎那,心情还是免不了激动。
回去后,就订了回程的机票。至此,主要任务完成,分支任务(船运设备)4个成功3个,剩下一个也连上了,遗憾的是没在现场把需要的数读出来。
总结一下经验教训:
1.连接硬件,特别是控制,一定要小心。
2.一定要尽可能多的了解要调研的东西,虽然这次也大致完成任务。但是这其中也有很多运气的成分(博士的朋友给我们指明了大方向、网上有modbus和opc相关的jar包)。
通过这次侥幸的成功,最大的收获就是学习了不少PLC的知识,为以后的调研硬件设备积累了经验。
分享到:
相关推荐
swt-4.17-gtk-linux-aarch64
这个压缩包包含了一个名为“4.17-2装配.xls”的文件,我们可以推测这可能是一个Excel表格,用于详细阐述或记录装配过程中的数据、步骤或图表。 在IT行业中,装配通常指的是机械工程、电子工程或软件工程中组件的...
"4.17-1"可能是该资料系列的一个章节编号或者版本号,表明这可能是某个课程或教程的一部分,专注于装配混凝土技术。 【描述】:“参考资料-4.17-1装配混凝土.zip”的描述简洁,直接点明了文件内容,即有关装配混凝...
perl-WWW-Curl4.17版本rpm包
标题中的"PyPI 官网下载 | arch-4.17-cp39-cp39-manylinux1_x86_64.whl"表明这是一个从Python Package Index(PyPI)官方源下载的软件包。PyPI是Python社区用于分发、发现和安装第三方Python模块的中央仓库。这个...
标题中的“参考资料-4.17-3装配.zip”表明这是一个关于装配技术的参考资料压缩包,版本号可能是4.17的第三次更新。这个压缩包包含了一个名为“4.17-3装配.xls”的文件,这通常是一个Excel表格,用于记录、分析或展示...
资源来自pypi官网。 资源全名:arch-4.17-cp39-cp39-manylinux1_i686.whl
黑龙江省大庆实验中学2019-2020学年高二英语下学期网上周测试题(4.17-18)(PDF)
QuickReport_6_Build_4.17_for_10.2_Tokyo win32win64 源码安装版本
记录在IPS学习过程中阅读过的论文以及PPT内容。这是一篇关于人物识别的文章。
PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,现在已经更名为PostgreSQL,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。PostgreSQL支持大部分 SQL标准并且提供了许多其他现代特性
很抱歉,但根据您给出的信息,这似乎是一个关于高中英语周测试题的答案列表,并非IT行业的专业知识点。这个内容主要是教育领域内的英语测试答案,包括选择题的答案和填空题的部分,与信息技术、编程、网络、数据库或...
是一个压缩包文件,它包含了一个名为 `WWW-Curl` 的模块的第 4.17 版本。这个模块是为 Perl 语言设计的,用于与 `curl` 工具集成,提供了方便的 HTTP 请求和资源获取功能。下面我们将详细探讨 `curl`, `www-curl` 和...
baidunetdisk-4.17.6.x86_64.rpm
标题"swt-4.17M3-win32-win32-x86_64"表明这是SWT的一个特定版本,4.17M3代表4.17预发布第三版,针对Windows 64位系统。"win32-win32-x86_64"这部分通常表示SWT是为64位Windows操作系统编译的,尽管"win32"可能意味...
java运行依赖jar包
63. bibliography:(有关某一专题的)书目;参考书目 64. commerce:商业,贸易 65. pope:罗马教皇,主教 66. senate:参议院,上院 67. era:时代,年代,阶段,纪元 68. division:分,分割;部门,科,处;除法...
标题“MLNX-NATIVE-ESX-ConnectX-4-5_4.17.13.8-10EM-670.0.0-8873266.zip”指的是一个针对Mellanox ConnectX-4和ConnectX-5网络适配器的驱动程序或固件更新包,适用于VMware ESXi环境。这个名称中的关键部分包括...