严谨好学的工控程序员,学软件编程好不好

好不好 3
ClubActivity精英会员<俱乐部活动 记中国工控网()用户俱乐部会员邓志群 严谨好学的工控程序员 邓志群1996年毕业于中南林学院计算机系。
毕业后,先后在湖北腾飞化工集团和浙江普博电机有限公司工作,2001年转到苏州祥正手普电力科技有限公司就职,任研发科科长。
1999年,邓工开始使用INTOUCH7.0软件,并在网上查找相应的资料,找到了中国工控网,并且找到了自己想了解的问题。
同时也看到了网友在使用同样软件时所遇到的问题,进一步帮助了邓工,从此与中国工控网结缘,并担任了中国工控网自动化软件论坛版块的版主。
从此每天登陆中国工控网,成了邓工的必修课。
在论坛中,用户提出的问题,邓工要是能解决的,都会立即回复。
邓工很喜欢浏览帖子,邓工说“看网上的贴子,是一种学习,也是一种交流。
一个问题往往会有多个解决方法,通过和网友的交流,我学会了从不同的角度思考一个问题,得到的回报也是很多的,现在可以用很短的时间,给网友提供解决思路。
” 在过去的几年中,邓工接触过多种通用工业组态软件,如INTOUCH、iFIX、组态王、力控、WEBACCESS、CITECT及和利时软件等。
也分别使用过多种编程语言进行定制编程,如VB, VC,DELPHI,C++BUILDER,VS.NET。
通过自己的不断努力,对各种组态软件的运行过程和各种数据文件进行分析,基本对组态软件的结构有了一定的了解。
邓工最熟悉的组态软件是iFIX,FIX支持C/S结构,结合VisualBasicApplicationSDK6.x,使软件很好的集成了OLE,COM,ACTIVEX技术,通过VBA的脚本功能,可轻松的接入WINDOWS32位API函数;同时也支持热备,冗余等概念,让系统稳定可靠。
邓工曾经给我们讲过一个故事“一名国外的工程师在国内做工程,工程快结束时,业主突然提出,需要改变一个开关点的控制逻辑。
同行的国内工程师看到后,觉得是很平常的一件事,和国外工程师商量后,通过改变PLC程序就完成了。
国外工程师花15分钟改好程序后,交给国内工程师,测试成功后,国外工程师还为此写下了几十页的分析原因及改动说明。
对此国内工程师却不以为然,认为完全没有这个必要,测试成功就可以了,但是国外工程师却不这样认为。
试想一下,如果没有国外工程师的文档说明,那么以后的维护和原因分析会顺利吗?”邓工说这个故事对 他来说印象深刻,并且有很深的影 响,邓工的谨慎在实际工作中也是出了名的。
就拿自动化软件中的2038问题来说,邓工就对这一事件进行了详 细的分析与测试。
一次偶然的机会,邓工他们在 做软件的时候需要调整时间,是
个演示版的软件,调整时间的时候机器掉电,大家都知道电脑的BIOS掉电,时间就会不准。
在把时间调整回去的时候,刚好调整过了2038年这个时间,这时就出现了问题,发现 程序不能运行,再看这个时间,也 会员档案 姓名:邓志群笔名:deng_lp单位:苏州祥正手普电力科技有限公司专业:中南林学院计算机系工控网职务:中国工控网工控论坛自动化软件版块版主注册时间:2001-6-19工作简介:负责公司电力软件的系统开发工作,担任研发科科长工程师积分:2268论坛主题文章:53发布论坛精华文章:4篇论坛回复文章:2078关注栏目:论坛、用户俱乐部、技术中心关注产品:自动化软件、DCS关注品牌:Wonderware、GEFanuc、亚控、力控、BroadWin、CITECT、和利时网站评价:论坛技术氛围好,资料丰富。
工控通讯2007.04 69 俱乐部活动>精英会员ClubActivity 不对。
于是就把这个作为一个基准,一步一步去调试,发现时间刚好在2038这个时间点上出了问题。
于是测试部在邓工的带领下,开始对组态软件进行测试,步骤如下:
1.调整系统时间到正常的时间2006-07-27;
2.打开或运行上述相关软件,没有任何提示,能正常打开自带的演示程序或服务;
3.关闭组态软件,将系统时间调整到2038-1-19以后的时间;
4.运行组态软件,应用程序会弹出“0x005365c9”指令引用的“0x0000000c”内存,该内存不能为“read”要终止还是调试;
5.再恢复系统到正常时2006-07-27,运行组态应用程序,一切又恢复正常!
测试结论:出现问题的程序模块是一个动态链接库,在这款组态软件的几乎所有的软件版本中都有使用,不论是正版用户还是普通的演示版本,只要有对这个动态链接库调用,就会有上述的问题。
写过VC程序的都知道,VC有一个自带工具Depends,用Depends打开组态软件主程序。
发现主程序多次调用该动态链接库,从程序的出错结果分析,动态库内部调用TIME_T结构来实现系统时间的调用。
这种调用在2038年以后来看是致命的,为什么会出现这个问题呢?带着疑问,邓工进行了详细的分析与猜测: 70   2038年问题形成的原因是C/C++等高级编程语言在内部有一个代表/存储日期和时间的time_t数据类型。
数据原型为(typedeflongtime_t),几乎所有的32位电脑系统都使用带符号32位整型来存储time_t的值,32位数据的时间起点为1970年1月1日12:00:00,通过时间变换,这个数字的累积,用实时数字减掉原始数字,也就是1970年1月1日12:00:00的起点,所得出的数字经过转换,我们就可以在电脑中看到XXXX年XX月XX日XX日XX时XX分XX秒的时间了。
当然问题就在这里,32位二进制数字是有极限的,到达极限后时间的转换就会出现问题,此时就有可能爆发“2038年问题”。
用C/C++编写一个小的测试程序,程序中使用localtime函数进行计算,发现在2038年1月19号以后,从系统读取数据会出现偏差,结果如下:TueJan1903:14:062038TueJan1903:14:072038FriDec1320:45:521901 从上面的结果可以得到结论,在2038-1-19时,计算结果重新复位为1901年的某个时间段。
邓工说这是一个行业上的问题,不光是一个公司的软件有这个问题,基本上所有的组态软件都会有这个问题。
测试下来的结果,只有GE公司的iFIX不会完整的让客户死 机,其他的软件都会有这种或那种问题。
但是GE的软件也不是真正解决问题,只是刚好避过了,不会导致死机,但是还会有问题。
这个2038问题的发现与提出,很快引起了广大用户的关注和重视,这个帖子在中国工控网上的点击率达到了上千次,大家都在纷纷讨论,共同探讨。
虽然对于2038问题的影响有多大还存在争论,但有一点可以肯定的是:有备无患。
大家都希望这个2038问题能够早日得到圆满的解决。
邓工除了严谨外,还非常的好学。
邓工说对于工控程序员来说,不管是硬件还是软件,只要是程序上的东西,都希望能了解。
虽然不用精通,但是必须有一个了解的过程,知道它是怎么做的,所以邓工还自己学习了单片机的编程。
而邓工现在最大的兴趣就是自己编写一个DCS控制系统软件,用以减少公司软件成本费用,并解决一些组态软件不能满足行业整体设计要求,无源程序无法修改的问题,现在正在对系统进行方案设计。
邓工不仅自己好学,还不忘鼓励那些新加入工控行业的朋友们,学习,学习,再学习。
邓工说最好能掌握一种高级编程语言,如VB,培养自己的逻辑思维能力。
用自己的逻辑思维去理解软件为什么这样做?如果不这样做,会遇到什么问题?时间长了,就会明白写这些软件的程序员思路,才能成为真正的工控程序员。
当初因为兴趣,邓工选择了工业控制,成为了一名工控程序员。
邓志群认为“在不同的工业现场,用自己的知识把机器改造成自动或半自动控制,把工人从繁重的机械劳动中解脱出来,这就是成功。
”在工作中,邓工始终秉着多学,严谨的态度,为工业控制奉献着自己所有的力量。
■ 2007.04工控通讯

标签: #好不好 #培训班 #尿酸 #好不好 #长安 #维生素 #含片 #好不好