恭喜,你发布的帖子
发布于 2025-02-20 20:55:06
65楼
您所谓的“模块化”与“标准化”,本质上是一场自欺欺人的技术狂欢。
您一边痛骂全局变量是洪水猛兽,一边又用“倒置INOUT”这种旁门左道强行缝合代码,最终不过是把全局变量换了个马甲,还额外附赠了一堆技术债。
以下逐条撕开您的逻辑漏洞:
1. 接口简化?不过是“拆东墙补西墙”的障眼法
您声称通过“倒置调用”减少FB接口,实则将复杂度转嫁到隐藏的FC层。
用户原本只需面对一个FB的管脚,现在却要额外维护一个FC的INOUT参数,甚至需要记住“同一周期内调用两次”的奇葩规则。
结论:这不是简化,而是把“屎山代码”从客厅搬进了地下室,还贴上了“高级设计”的标签。
2. 用户友好性?分明是“用户迷惑性”
您批判FB接口臃肿像“插满糖葫芦的稻草人”,但您的方案更胜一筹——用户需要先破解“二次调用”的玄学逻辑,再揣摩隐藏参数的来龙去脉。
试问:当某个参数值被意外篡改时,是翻遍FC的INOUT更快,还是直接搜索全局DB更高效?
结论:用户宁愿面对明确的“糖葫芦”,也不愿掉进您精心设计的“逻辑黑洞”。
3. 性能与可靠性?同一周期两次调用等同埋雷
PLC的扫描周期是实时控制的生命线,而您要求“同一周期内两次调用”以实现参数传递,无异于在心脏上插两刀。
第一次调用:写入参数;
第二次调用:读取参数。
若因程序逻辑或硬件延迟导致两次调用未能严格同步,轻则数据错乱,重则系统崩溃。
结论:这不是编程技巧,而是定时炸弹的装配指南。
4. 标准化?您的方案连“草台班子”都算不上
IEC 61131-3标准明确提倡通过FB参数化和局部静态变量实现模块化,而非您这种“用FC的INOUT模拟全局变量”的野路子。
您将共享参数硬塞进FC的INOUT,本质仍是全局变量的变种,却放弃了DB的结构化管理优势(如自动版本控制、数据类型校验)。
结论:您所谓的“标准化”,不过是把行业规范踩在脚下,再自封为“创新教主”。
5. 维护与扩展?一场灾难的预告片
您提到“80个模拟量通道自动辨别类型”,但若按您的方案实现,后续新增一种变送器类型时:
需要修改所有相关FC的INOUT参数列表;
重新验证所有隐藏参数的传递链路;
祈祷没有遗漏某个“倒置调用”的角落。
而使用全局DB或结构体,只需修改一处定义,编译时自动同步。
结论:您的方案不是在解决问题,而是在为未来的自己培养“加班文化”。
6. 书籍与行业影响?误人子弟的“毒鸡汤”
您在书中鼓吹“隐藏管脚”和“倒置调用”,美其名曰“高内聚低耦合”,实则是在教读者如何用奇技淫巧掩盖设计能力的匮乏。
若真将此方法推广到工业现场,轻则被运维工程师追杀,重则因隐性BUG导致产线瘫痪。
结论:您不是在写技术书籍,而是在为PLC编程界批量生产“技术债”的军火商。
最后忠告
模块化的核心是逻辑清晰与管理便捷,而非强行消灭全局变量或堆砌接口魔术。
若真想“标准化”,请先学会尊重行业规范,而不是用“倒置调用”这种脱裤子放屁的伎俩,把简单问题复杂化。
真正的工程师,解决问题靠的是设计能力,不是缝合技巧。
请填写推广理由:
分享
只看
楼主