程序员为什么要懂物联网?

640?wx_fmt=gif

640?wx_fmt=jpeg

参考:《物联网时代 : 新商业世界的行动解决方案》

作者 | 马切伊·克兰兹 / 中信出版社

如果你仔细地观察过去25年里的科技企业,你就会发现变化一直在发生。

每隔3-7年,企业就必须对它们进行重塑。那些错过了一次技术转型的公司如果能迎头赶上的话,那么还有可能重新恢复过来。

而那些错过了两次技术转型的公司,则有可能已经消失了。

如果你有兴趣的话,可以查看一下50年前标准普尔500强公司的名单,如果统计无误的话,截止到2017年,只有19%的企业现在依然存在。

当我们在网络上看着90后“佛系”“中年人”的话题捧腹大笑的时候,其实我们没有看到这背后透露着的真正原因是:90后们生活在“变的太快”的世界里,太多学习工作生活里的问题他的上一辈甚至前一代人都没有遇到过,他们的迷茫那么大,以至于有些人认为:至于以不变应万变才是“正解”。

而如果我们把这件事扩展的更大一些,无论我们的真实年龄如何,我们都注定属于将遭遇革命性变革的一代人。这也正是马切伊.克兰兹(Maciej Kranz)将每一个商业领域正经历“革命性变革”的这一代人叫做“物联网一代”的原因。


640?wx_fmt=png

什么是物联网?

一个相对繁琐的解释是:

物联网是互联网的一个延伸。互联网的终端是计算机(PC、服务器),我们运行的所有程序都是计算机和网络中的数据处理和数据传输,没有涉及任何其他的终端。而未来,所有物和物之间都可以实现互联。

物联网能够让互联网连接对象使用嵌入式传感器进行数据收集和交换的网络,汽车,厨房电器,甚至心脏监视器都可以通过物联网连接。随着物联网在未来几年的发展,更多的电子设备将加入物联网的阵营。

而在《物联网时代》中,物联网有一个更为简单明了的定义,它是“通过基于互联网协议的分布式云端,将所有的东西都互联起来。”其作者马切伊·克兰兹是全球物联网专家,思科公司战略创新集团副总裁。

总的来看,物联网的本质还是互联网,只不过终端不再是计算机(PC、服务器),而是嵌入式计算机系统及其配套的传感器。

在这个意义上说,物联网是一个很大的概念。如果单从学科上分解来看的话,它涉及到通信,信号处理,计算机视觉,自动化控制,电路系统,信息融合,无线自组织网络,MEMS传感器设计等等。

可以说,这是计算机科技发展的必然结果,为人类服务的计算机呈现出各种形态,如穿戴设备、环境监控设备、虚拟现实设备等等。只要有硬件或产品连上网,发生数据交互,就叫物联网。

实际上,大数据概念最早的提出,也是因为物联网的兴起,传感器接入网络之后,大大增加了可以挖掘的数据量,网络上的数据不但包括社交网络这种来自用户的数据,还有了来自物理世界的数据。

640?wx_fmt=png

物联网发展速度为什么这么慢? 

正如马切伊在他的书中提到的那样,物联网实际上并不是什么新的发明,它以不同的形式以及存在了10年以上的时间。

它的本质便是上个世纪学术界开始兴起传感器网络、自组织及多跳网络(wireless sensor network, ad-hoc network, wireless multi-hop network)。

RFID在智能物流上的应用只是最为基本的应用场景,当前的研究远比这个更为复杂。但是,受限于应用场景和技术实现的瓶颈,物联网的发展,其实无法像互联网那样爆发。

首先,现阶段的物联网应用基本都是“锦上添花”的东西,需求性并没有那么强,如可穿戴设备和智能家居,这也就是为什么很多智能硬件叫好不叫座的根本性原因;

也正是因为这个原因,商业上也不会出现滴滴打车那样的持续性投入,这又反向钳制了这一技术的商业化发展。

其次,物联网技术上还有很多没有突破。最大的技术瓶颈可能在MEMS传感器的性能和无线传感网的设计实现上。 

再有,就是目前在应用上还找不到突破。目前比较活的也就是智能硬件,无人机,工业物联网这块。但是离人类和互联网形成的应用需求还无法相比,目前还没出现。

最终,物联网应用的制约因素还是能源,物联网应用场景的扩展一直在等待电池技术的突破。所以,目前来说物联网首先会在那些对能量要求不是很高的方向首先取得突破,比如智能硬件和工业设备上。 

总之,物联网的方向毋庸置疑有着广阔的发展前景,但是当前基础研究和相关技术还有待发展,因此看起来发展缓慢,甚至就是停滞,学术和商业界都在等待一个颠覆性应用可以让物联网来一次“诈尸”。

基于此,优快云推出了系列IoT公开课。

9 月 19 日,优快云 邀请到百度天工基础平台边云融合技术负责人 朱鸿伟为大家讲解百度天工物联网基础平台的微服务容器化落地实践。

干货课程分享,不可错过~
分享一:优快云特邀讲师朱鸿伟,为大家免费讲解百度天工物联网基础平台的微服务容器化落地实践。通过此次课程,我们可学习到百度天工IoT基础平台的主要技术框架以及在微服务容器化改造实践过程中的工程实现细节。

直播时间:9月19日  20:00

课程大纲:

1. 物联网基础平台本身的技术业务特点

2. 基础平台微服务容器化后的技术业务收益

3. 物联网基础平台微服务容器化改造的问题和权衡

4. 物联网基础平台微服务容器化后的服务治理

讲师介绍:朱鸿伟,百度天工基础平台边云融合技术负责人,毕业于浙江大学。曾从事过编译器开发、天工TSDB和天工函谷系统开发,目前负责天工物联网基础平台整体微服务容器化改造相关工作。

扫码免费报名

分享二:优快云特邀讲师王海良,为大家免费带来关于智能问答机器人深度学习领域重点项目剖析,通过本次课程你将收获:60分钟搭建智能问答机器人和学会应用实际项目中的开源软件。

640?wx_fmt=png

直播时间:9月26日  下周四

扫码免费报名

免费领取AI学习资料+课件源码+在线答疑

免费入群+惊喜彩蛋+社群交流

作为一个努力的技术人,未来最有可能的成就。至于具体如何去做,现阶段,该如何准备,请听老师们的分享吧!

总之学习这件事,稳赚不赔,你还想错过吗?~

640?wx_fmt=gif

<think>好的,我现在需要帮助这位C#程序员规划一个从基础开始的PLC编程学习路径。首先,我需要回顾用户之前的提问和我的回答,确保内容连贯。用户之前询问了PLC中的操作数,现在他希望作为C#程序员入门PLC编程,需要一个由浅入深的教程路径。 首先,用户是C#背景,可能熟悉面向对象编程、事件驱动和高级语言特性,但PLC编程通常使用梯形图、结构化文本等,更接近硬件和实时系统。因此,学习路径需要从基础概念开始,逐步过渡到实际应用,并利用他的现有编程知识。 接下来,我需要考虑如何将C#的知识迁移到PLC编程。例如,C#中的变量和类型对应PLC的存储区,事件驱动可能对应PLC的扫描周期和中断处理。结构化文本类似于C语言,这点用户可能比较熟悉,但梯形图可能较陌生,需要重点讲解。 然后,确定学习路径的结构。通常,学习PLC编程需要了解硬件组成、编程软件、基本指令、项目结构、调试方法等。对于C#程序员来说,可能需要更强调编程逻辑和结构上的差异,比如PLC的循环扫描机制与C#的事件驱动模型的不同。 还要考虑推荐的资源,比如模拟软件(如PLCSIM)、开源项目(如Arduino PLC IDE)、厂商教程(西门子、罗克韦尔)。这些资源可以帮助用户实践,而不需要立即购买硬件。 另外,用户提供的引用中提到了CiT公司的Citech使用类似C的脚本,但非面向对象,这可能意味着在介绍结构化文本时,可以对比C#和ST的异同,帮助用户理解。 需要避免过于技术化的术语,但又要准确。例如,解释PLC的扫描周期时,可以类比C#的主循环,但强调其实时性和周期性。 还要注意用户可能的误区,比如认为PLC编程与高级语言类似,但实际上更注重时序、硬件配置和可靠性。因此,学习路径中需要包括这些方面的内容。 最后,确保学习路径由浅入深,分阶段进行,每个阶段都有明确的目标和实践项目,帮助用户逐步建立信心和技能。同时,提供相关的问题,引导用户深入思考,比如PLC与高级语言的区别、OOP在PLC中的应用等。</think>### C#程序员入门PLC编程学习路径(由浅入深) --- #### **阶段1:理解PLC基础与C#的差异(1-2周)** 1. **核心概念对比** - **编程模式**:PLC采用**扫描周期**(循环执行) vs C#的**事件驱动** - PLC程序按固定周期(如10ms)循环扫描输入→执行逻辑→更新输出 - **数据类型**:PLC以**位/字/双字**为主 vs C#的复杂对象 - 示例:$MW10$(16位存储字) vs C#的`int` - **实时性要求**:PLC强调**确定性响应**(硬实时) vs C#的软实时[^1] 2. **硬件基础** - PLC组成:CPU模块、I/O模块、电源模块 - 常见通信协议:Modbus TCP、Profinet、OPC UA(与C#交互的桥梁) - 推荐工具:使用**PLCSIM**(西门子模拟器)进行虚拟实验[^2] --- #### **阶段2:掌握PLC开发环境(2-3周)** 1. **主流平台选择** | 品牌 | 软件工具 | 特点 | |-----------|----------------|-------------------------------| | 西门子 | TIA Portal | 支持结构化文本(SCL) | | 罗克韦尔 | Studio 5000 | 类似C#的标签系统 | | 三菱 | GX Works3 | 梯形图优化 | 2. **从C#迁移的关键技能** - **结构化文本(ST)**:语法接近Pascal/C,适合C#程序员 ```ST IF Sensor1 THEN Motor := TRUE; Counter := Counter + 1; END_IF; ``` - **符号编程**:类似C#变量命名(如`Motor_Start`替代$I0.0$) - **函数块(FB)**:实现代码复用(类比C#的类方法) --- #### **阶段3:核心编程技能训练(4-6周)** 1. **基础指令实践** - **位逻辑**:与/或/非(对应梯形图触点) ```ladder |---| |---|/|----( )--- I0.0 I0.1 Q0.0 ``` - **定时器/计数器**: - 使用$TON$(延时接通)指令实现C#的`Task.Delay` - **数据操作**:MOV、ADD、MUL指令(类似C#基础运算) 2. **高级应用开发** - **模拟量处理**:4-20mA信号标定(需掌握`NORM_X`/`SCALE_X`指令) - **通信编程**:通过TCP/IP与C#上位机交互(推荐使用S7.Net库) - **报警处理**:实现事件日志(类比C#的`EventLog`) --- #### **阶段4:项目实战与架构设计(2-3个月)** 1. **典型项目案例** | 项目类型 | 技术要点 | |----------------|-----------------------------------| | 流水线控制系统 | 状态机设计、光电传感器联动 | | 温度PID控制 | PID算法实现、模拟量闭环控制 | | 数据采集系统 | OPC UA通信、SQL数据库存储 | 2. **C#与PLC协同开发** - **上位机开发**:使用WPF/WinForms通过`S7.Net`读写PLC数据 ```csharp var plc = new Plc(CpuType.S71200, "192.168.0.1", 0, 1); plc.Open(); int value = plc.ReadInt("DB1.DBW4"); // 读取PLC数据 ``` - **OPC UA服务器**:通过`OPC Foundation SDK`实现跨平台通信 --- #### **推荐学习资源** 1. **书籍** - 《PLC编程实用指南(第3版)》(机械工业出版社) - 《TIA Portal高级编程与实战》(西门子官方教程)[^3] 2. **在线课程** - Udemy: *PLC Programming from Scratch*(含ST语言专题) - 西门子官网: S7-1200/1500系列免费实验课 3. **开源工具** - **Arduino PLC IDE**:低成本实践平台 - **OpenPLC**:支持IEC 61131-3标准的开源运行时 --- #### **关键注意事项** 1. **实时性陷阱**:避免在PLC中使用复杂循环(扫描周期超时会导致系统故障) 2. **内存管理**:PLC无垃圾回收机制,需手动管理数据块 3. **安全规范**:急停电路必须使用**硬件继电器**,不可仅依赖软件逻辑 --- ### 相关问题 1. 如何将C#的面向对象设计模式应用到PLC编程中? 2. PLC的扫描周期机制如何影响程序结构设计? 3. 在工业物联网(IIoT)场景下,C#与PLC如何分工协作? [^1]: 西门子TIA Portal手册中关于扫描周期的定义 [^2]: PLCSIM官方文档的虚拟化技术说明 [^3]: 罗克韦尔自动化培训中心提供的架构设计指南
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值