注册论坛好久了,刚开始工作出差调试多,没有太多自由时间,真正开始发帖是从今年开始的;利用晚上和周末时间写了一些分享贴,大多是自己以前想到的一些想法,但是没空去实现的程序代码;
1.递归
递归有着平常循环所没有的独特魅力,它利用了调用自身的方法去展开问题,思考的时候需要总结一个重复的步骤和最后一步去实现的样子;典型的比如汉诺塔,从A 柱子经过B 柱子到达 C 柱子;就可以简化成先把n-1 个挪到B 柱子,再把第n 个给挪到C;然后问题就又变成了类似原来的样子,只不过问题现在是把在B 柱子上的n-1 个,经过A 柱子协助,挪到 C 柱子;依次类推... ...,思考清楚后就陆续实现了几个版本:
STL 版本地址链接: https://www.ad.siemens.com.cn/club/bbs/post_1826730_66_0_0.html#anch
SCL 版本的地址链接; https://www.ad.siemens.com.cn/club/bbs/post_1826670_66_0_0.html#anch
WINCC 版本的地址链接; https://www.ad.siemens.com.cn/club/bbs/post_1827031_5_0_0.html#anch 这个版本被评为了精华帖,感谢!;
扫雷小游戏地址链接: https://www.ad.siemens.com.cn/club/bbs/post_1831552_5_0_0.html#anch
这个小游戏有点难度的地方在于点击一个没有雷的地方后,会扩展出一片的效果,因为这一片区域的地雷是随机生成的,所以空白区域的出现也是没有规律的,使用递归就能实现这种效果,就像一滴水在纸上的扩散;
其实本来打算(就是还没做,哈哈)进一步扩展这个游戏的数据库功能,数据库可以用于记录每次点击操作的坐标记录和花费时间等,所以数据库的一些常用指令已经准备好了,链接如下:
WINCC 数据库操作常用脚本指令:https://www.ad.siemens.com.cn/club/bbs/post_1836680_5_0_0.html#anch
2.CRC校验
经常用串口的人对校验不陌生,最常见的有奇偶校验,累加和校验和循环冗余校验;
前两者都很容易实现,但第三种是效果最好的,就想自己去实现一下啊;本着循序渐进的态度,先去了解了原理,理解了什么是‘模2除法’,然后去实现了CRC-4,CRC8,CRC16; 配合多项式会有很多种CRC的实现方式,最想实现的就是CRC-16 MODBUS, 因为这个与工控相关度最高;
CRC-4链接: https://www.ad.siemens.com.cn/club/bbs/post_1843510_66_0_0.html#anch
CRC-16-Modbus链接 : https://www.ad.siemens.com.cn/club/bbs/post_1844571_66_0_0.html#anch
CRC-16 另外的几种方法汇总,链接: https://www.ad.siemens.com.cn/club/bbs/post_1844933_66_0_0.html#anch
3.滤波
后来经常在调试的时候听同事说,采集的数据波形有干扰,就学习了一下常见的滤波形式,去一一实现,汇总成一篇:
常用模拟量滤波效果对比,链接:
https://www.ad.siemens.com.cn/club/bbs/post_1856573_66_0_0.html#anch
为了验证效果,其实是先做了一个简单的杂波发生器,链接:
https://www.ad.siemens.com.cn/club/bbs/post_1855970_66_0_0.html#anch
为了写杂波发生器,是要生成随机数来模拟杂波的,对比了几种伪随机数生成算法,发现西门子官方的写的平衡性最好(易于理解,方便实现,结果合适),学习后就直接用上了;
西门子随机数生成算法赏析链接:
https://www.ad.siemens.com.cn/club/bbs/post_1856109_66_0_0.html#anch
目前国内PLC 逐渐兴起,基于Codesys 的编程平台,因为统一,指令库丰富,越来越多的人逐渐习惯上手了;而且服务态度也比较友好,稳定性初步经过了市场的检验;生态建设的还不太行,知名一点的也就是汇川的水滴论坛还行,总之有待提高;
这个行业竞争日趋激烈,越来约卷了;我觉得没事可以多练练手,保持头脑的灵活;另外可以拓展一下工作能力范围,要做到精通多个品牌PLC, 可以上手机器人和视觉调试,一些简单数据采集的MES 也要能搞定,当然必须能画图和接线,甚至机械的动作优化; 总之除了机械画图,啥活最好都会点;