PLC笔记一

一、PLC编程类别:

一、线性化编程(流程图形式)(简易单机设备)

        优势:开发难度低,调试速度快

        劣势:工作节拍慢,工作效率低        

        流水灯类型

二、功能化编程(数据块--工具)

        优势:框架稳定;冗余效果好,产线效率特别好

        劣势:开发难度大


二、块逻辑编程

一、FB封装的意义:

1. 多处地方需要重复使用

2. 便于观察

二、西门子 S7-1200 FB 变量类型对比

变量类型FB 外部访问FB 内部访问变量特性
<Input>可读可写 ✅(外部赋值)只读 ❌(内部不能修改)外部输入,FB 内部只能读取
<Output>只能读 ✅(外部读取)可读可写 ✅(内部可修改)FB 内部计算后输出给外部
<InOut>可读可写 ✅(绑定关系)可读可写 ✅(内部可修改)外部变量绑定到 FB 内部,值会同步变化
<Static>可通过 FB 附带 DB 访问可读可写静态变量,值在 FB 内部存储,FB 外部可访问(通过 DB)

三、西门子块类型对比

OB组织块;FB函数块;FC函数;DB数据块

FC做区域划分,FB做功能开发

一、技术层面的合理性分析

  1. DB(数据块)->仓库

  • 完全合理:数据块是PLC中唯一的数据存储载体,分为全局DB(共享仓库)和背景DB(专属仓库)。如配方数据存储在全局DB,而每个电机控制的运行参数存储在各自的背景DB。

  1. FC(函数)->车间主任

  • 部分合理:FC适合实现无状态操作(如标准化转换函数FC100:RealToInt),确实可用于模块化编程。但将其比作管理层需要注意:
    优势:FC强制使用接口参数,适合创建标准工艺库(如报警处理FC)
    局限:缺乏静态变量存储能力,不适合需要保持状态的功能(如设备控制)

  1. FB(功能块)->具体技术员

  • 高度契合:FB+背景DB的组合是面向对象编程的典型实现。例如包装机工位的FB10,每个实例(背景DB10、DB11...)独立维护自己的计数、状态等信息,完美匹配"技术员+专属工具箱"的比喻。

  1. OB(组织块)->领导

  • 条件合理:OB1主循环确实像CEO调度整个程序,但需要补充:
    中断OB(如OB35循环中断)类似应急管理部门
    错误处理OB(如OB80)相当于质量监督部门
    启动OB(OB100)类似初始化流程的行政办公室

二、实际工程应用建议

  1. 架构设计规范:

  • 采用FB封装设备控制(如FB_MotorControl)

  • 使用FC实现工艺算法(如FC_PID_Control)

  • 通过OB35实现精确周期控制(如1ms高速采集)

  • 全局DB存储HMI交互数据,背景DB关联设备实例

  1. 性能优化案例:

  • 某汽车焊接线使用FB+背景DB实现200个焊枪控制,内存占用减少40%

  • 采用FC实现公共报警处理,代码复用率提升70%

  1. 扩展应用:

  • 面向服务架构(SOA)中,FB可视为设备级微服务

  • 通过FB的多背景实例实现柔性生产线的快速配置

三、常见误区警示

  1. FC滥用陷阱:

  • 某项目用FC实现电机控制,导致:

    • 必须使用全局变量存储状态

    • 出现多个电机状态互相覆盖

    • 维护成本增加300%

  1. DB管理误区:

  • 背景DB未采用版本控制,导致:

    • 设备参数在修改后异常

    • 生产线停机2小时排查数据问题

总结:该比喻对初学者理解块类型有帮助,但实际开发应遵循:

  • FB为设备控制核心(占比60%-70%)

  • FC实现无状态服务(占比20%-30%)

  • OB构建执行框架(占比5%-10%)

  • DB严格按访问权限划分(背景DB禁止全局访问)

建议采用模块化设计规范:

  1. 设备层:FB+背景DB

  2. 工艺层:FC+全局DB

  3. 调度层:OB+时间中断

  4. 接口层:UDT(用户数据类型)保证数据一致性

这种架构可使代码复用率提升至85%以上,显著降低维护成本,特别适用于需要快速换型的智能制造场景。


四、架构解析

1. 设备层:FB+背景DB → 每个机器人都有自己的工具箱

  • FB就像工厂里的机器人(比如包装机器人、焊接机器人),每个机器人都有自己特别的本领。

  • 背景DB是它们的专属工具箱。比如包装机器人用自己的工具箱装彩带和胶水,焊接机器人用另一个工具箱装焊枪和螺丝,不会拿错工具。

2. 工艺层:FC+全局DB → 全工厂都要遵守的规则

  • FC像是老师教大家的标准动作。比如所有机器人都要遵守"拿东西前先伸手"的动作(就像数学课学的1+1=2,谁算都一样)。

  • 全局DB是工厂中央的大储物柜,所有机器人都能从这里拿公共材料,比如包装盒上的标签图案大家都用同一款。

3. 调度层:OB+时间中断 → 工厂的课程表

  • OB主程序就像校长制定的课程表:第一节数学课(让机器人算数),第二节手工课(让机器人包装礼物)。

  • 时间中断像学校的上课铃,每到9点整,所有机器人都会停下手里的事,准时开始做广播体操(比如每隔1秒检查一次机器温度)。

4. 接口层:UDT → 全工厂统一的作业本格式

  • 就像老师要求所有同学写作业时:

    • 第一行写姓名(设备编号)

    • 第二行写日期(运行时间)

    • 第三行用蓝色笔写答案(温度数据)

  • 这样所有机器人的"作业本"都长得一样,校长检查时一眼就能看懂每个机器人在做什么。

小总结:这个工厂就像我们班级一样,每个同学(FB)有自己的铅笔盒(背景DB),班长(FC)教大家统一解题方法,课程表(OB)告诉什么时候上什么课,所有作业本(UDT)都按相同格式写,整个班级就能整齐又有序地运行啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值