网上有个戏弄公司中那些倚老卖老、作业中偷奸耍滑的老油子的段子说:你哪里有十年作业经历,您呐不过是把一年的作业经历用了十年罢了!
短短两句幽默话儿,一个不思进取,长年在一个岗位上厚着脸皮吃老本的混子形象栩栩如生。可谓戏弄辛辣,言必有中,很是让孜孜不倦地研究苦干、打怪晋级涨经历的我辈过瘾。
但是且慢,其实,不少老实巴交的工程师并非那么滑头,不求进步,只想长岁数不长经历,真实是因为许多时分,甘做革新螺丝钉的他们把大把的精力糟蹋在了重复劳动上罢了。
1
工程师的生长要讲一命二运三风水。
假使生于“必有余庆”的积善之家,祖上积德,摊上一个好上司,碰到一个好伙伴,又赶上一个好渠道,天然如虎添翼,大鹏展翅,想不进步都难。
但要是命运差,被上司看不惯,只给些不露脸的脏活累活干,天然也得不到时机实干和训练。或许常常被无脑的伙伴拖累得翻车,一同陪着背锅,也只能无法地把年月蹉跎。再或许渠道的确太差,任你根柢再好也蹦跶不了几下。
我司是一个从事产品开发和技术服务事务的单位,渠道一般般,但也不算烂,工程师为主,人际关系简略。只需埋头苦干,或许常常厚着脸皮跑到领导那里点赞,一般都能够得到训练提高的时机,渐渐混成数量有限的主干。
长时刻作业下来,搭档之间天然也划开了清晰的边界。有卖力作业的真主干,有跟领导打得火热的假主干,也有一些人,既水平有限,又不得领导待见,只能在大大小小的时机和待遇面前靠边站。
我司的齐工,便是这么一位边缘人。
他呢,根柢有点差,面皮又有点薄,得不到时机训练,所以只好打打杂儿,一朝一夕,成了咱们这儿的“勤杂工”。
他有时在产品研制中担任个可有可无的人物,搞搞底层驱动,给真假主干们打打下手。有时彻底被无视,只好帮人跑跑腿,买个件,焊个板子,接接线拧拧螺丝来打发时刻。有时也会被领导“委以重任”,给某个快要量产的产品做个测验工装。
总归,他就这样日复一日地看着白天黑夜交织,蹉跎着年月,蹉跎着自我。不过,齐工虽然不招领导待见,咱们这些劳苦大众却是很喜爱他。也是,人畜无害,还能帮你干点活,谁不喜爱呢?
齐工在咱们这儿待了七八年了,却和我打交道不多,直到有一次给我快要完结开发的产品做测验工装,我俩才有了第一次亲密接触。
2
说起来,齐工是做测验工装的内行了。在调到我地点的项目组协助时,他至少做了三四个测验工装了。
我看过他做的那几个工装,尺度有大有小,电路迥然不同,这也难怪,咱们这边做的产品原本就差不太多,测验它们的工装天然也大差不差了。
所以,齐工这次出马算是驾轻就熟,咔咔一顿复制粘贴,电路板的原理图和PCB就画好了。画好之后,制板之前,他跑到我这儿借着作业唠起了闲嗑。
我这人是极好相与的,也喜爱闲扯淡,所以就借着作业跟齐工如火如荼地聊了起来。当齐工跟我说起这次做测验工装的板子纯属糟蹋时刻、蹉跎生命的重复劳动,导致自己没有时刻真实地提高自我时,我这操闲心的缺点又起来了,就毛遂自荐地向他献了一计。
提到这儿,先跟我们科普一下“测验工装”是干嘛的。
在电子产品的批量出产过程中,为了验证所出产的产品没有呈现焊错件、漏焊、非正常短路、元器件残次等质量问题,并满意大批量出产过程中在出产线上的节奏,需求做一个能够测验所出产产品的工装,对它进行进行一些功用测验,必要时还要进行量力而行的功用测验,以保证产品的质量。所以,测验工装是一种重要的出产办理工具,它能够高功率并全面地判别所出产产品的质量。
前面说过,我司做的产品迥然不同,它们的输入输出接口也很类似,能够包含在开关、脉冲、通讯端口及功率驱动的范围内,不同产品功用有些不同,导致测验工装的软件必定有些不同,但是其输入输出接口的性质相同,这导致测验工装的硬件必定迥然不同。
这样,就像齐工所诉苦的那样,测验工装的电路板长得像是异父异母的亲兄弟相同,必定存在必定程度上的重复开发问题。
这儿面就大有文章可做。我跟他剖析了做一款通用测验工装的可能性和大致计划。
3
开始,我想得比较简略,已然公司产品差不多,就干脆做一个大而全的测验工装电路板,在电路板上支撑各种接口,并且尽量添加各路信号的通道数。不管哪个产品,终究都用这个测验工装的电路板来测,测验简略的产品时,接线少一些,工装软件也简略一些,测验杂乱的产品时,无非是接线多一些,工装软件也杂乱一些罢了。
但是,我向齐工言无不尽这个主意后,他就把脑袋摇成了一个摇晃鼓。本来,他之前向领导主张过这个计划,却被无情地怼了回来。
“做那么大的板子,有那么多无用的通道,编程时不得多累心呀?测验不同的产品时,不是还得在工装上编写不同的软件?并且接线方法那么灵敏,是不是很简单搞乱?”他带着懊丧的口气向我复述了领导怼他的“魂灵三问”。
他目光迷离,神情懊丧,再牛逼的肖邦,也弹不出他那种忧伤。
看着齐工一副无精打采的容貌,我悲心大动。帮人帮到底,送佛送到西。所以乎,我一边揣摩着领导的话中背面的意义,一边构思着更进一步通用的计划。
“已然电路板通用满意不了领导的食欲,那就干脆让电路板上的程序也通用!”我咬着后槽牙,向齐工道出了自己的主意。
在这儿,需求给各位看官阐明的是,一个完好的测验工装包含上位机和下位机两个部分。上面一向跟我们掰扯的这个电路板及其板上的嵌入式软件仅仅个下位机,在PC机上还有个上位机软件,做些测验数据办理、测验流程调度、数据监控和存储、测验成果显现、出产日期记载、版本号办理、序列号追寻等一些必须在电脑上完结的作业。
让下位机的板子和程序都通用,弦外之音便是让上位机承当起详细功用测验的建议和成果判别,下位机只做为信号的“管道”,不承当任何功用逻辑的解析。
它的作业是依据上位机的指令,在输出接口上给定相应的输出,这是对被测目标的“鼓励”,一起将输入接口上的状况数据实时发送到上位机上,这是被测目标的“呼应”。
只需下位机装备足够多的信号管道,完结与与被测单元的硬件衔接,并做好上位机和被测目标之间的“传令官”,彻底能够做到与详细使用无关。
和详细使用无关,岂不便是“通用”吗?
4
齐工的眼睛渐渐放出光来,顷刻又宣布疑问的表情来,“下位机这个信号管道怎样办理呢?它是个什么方法呢?”
好问题,下位机要衔接不同的被测目标,但是被测目标的输入输出接口有差异,齐工的问题实际上是:怎样以“信号管道”的概念来无差异化办理这些接口呢?
答案是:完成多种性质的信号通道,并给它分配编号,以“信号性质+编号”的方法建立起信号通道列表,然后上下位机要保护相同的列表。
下位机是信号通道的渠道载体,在PC机的操控下完成对各个输出方向的信号通道的操作,周期性地反应各个输入方向的信号通道的状况。这些信号通道和被测目标的接线方法由测验人员在上位机上设定(当然,怎样设定就得怎样接线哦),详细的内容解析则由上位机进行解说。
举个比方吧,在测验工装上完成30路数字输入端口,信号性质是“数字输入”,编号从1-30,在工装上以固定周期(比方50毫秒)守时收集这些端口,经过一个报文以固定周期发送到上位机上,上位机就能够依据这些端口状况,判别详细的测验条目有没有经过了。
上位机和下位机能够用“信号性质”做报文ID,比方“数字输入”用1表明,“数字输出”用2表明,上面那个比方中,报文ID=1,数据场用4个字节,以30个bit对应30路数字输入端口的状况,这样,报文的格局便是:
报文头+1(信号性质:数字输入)+4(报文内容长度)+报文内容(30路数字输入端口状况)+校验和
上位机依据报文ID,便能够顺次提取出这30路输入状况,再依据之前设定好的接线方法,就能够确认被测目标的哪个详细的输出信号是个啥状况了。
我鼓着腮帮子讲得不着边际,齐工的眼睛间或一轮,不时地对我放出崇拜的光来。“我去跟领导报告报告?”齐工跟我重复评论了技术细节后,决心再度膨胀起来。
我重重地点了允许,一起吩咐他,必定要给领导说一句纲举目张的话:产品尽量通用,能够协助脱节重复劳动!