今 天 在 这 里 说 一 下 SFC 编 程 方 法 。 个 人 觉 得 很 好 。 用 这 种 方 式 编 程 , 程 序 清 晰 , 逻 辑 性强 , 并 且 简 短 给 人 一 目 了 然 的 感 觉 。 在 画 出 SFC 图 时 , 编 程 的 思 路 : 每 一 个 当 前 步 只 有 一 个前 一 步 和 一 个 后 步 ; 有 多 少 个 步 就 有 多 少 个 相 应 的 rest和 set语 句 。最 近 也 看 了 不 少 程 序 也 写 了 一 些 , 自 己 总 结 了 一 下 , 如 果 是 顺 序 控 制 ( 当 然 其 他 类 型 的也 一 样 ), 为 了 能 够 使 调 理 更 清 楚 一 些 , 看 起 来 更 美 观 没 有 那 么 复 杂 , 个 人 建 议 可 以 把 程 序分 成 两 部 分 来 写 , 即 : 控 制 程 序 部 分 和 输 出 程 序 部 分 。控 制 程 序 部 分 : 只 考 虑 步 的 流 程 , 而 不 需 要 考 虑 输 出 结 果 和 动 作 。输 出 程 序 部 分 : 只 考 虑 输 出 结 果 和 动 作 , 而 不 需 要 考 虑 步 的 流 程 。优 点 : 方 便 调 试 。 从 输 出 程 序 部 分 , 就 能 知道是 控 制 程 序 哪个 部 分 逻 辑 出 错。SFC 设计思 想:将控 制 系统的 工作 周期划分 为 若干个 顺 序 相 连的 阶段。SFC 设计步 骤如 下 :首先, 根据工艺流 程 , 画 出 顺 序 功能 图 ( SFC)。翻译为 LAD 或者STL 程 序 。毕竟表达能 力有 限, 文字表达的 不 是 很 清 晰 。举一 个 简 单的 例子。( 编 写 的 时 候没 有 专门的 新建 一 个 300, 所以 下 例程 序 中的 正反转不 用去考 虑 , 一 切以 I/O变量表为 准,若要 开始循环, 必须在 OB100中设置起 始步 为 M1.1)编 程 对象:钻床零件加工工艺要 求:需 加工的 零件为 圆盘状零件, 其 上均匀分 布3 个 大孔和 3 个 小孔。 钻床自 动 运行的初始状态为 : 两 个 钻头在 最 上位, 上限开关I0.3 和 I0.5 为 ON。 工作 过程 为 : 加紧工件,大小钻头开始向下 钻孔, 至规定深度后 , 钻头向上提升并 等待, 此时 工件旋转120°后 , 开始加工第二对孔。 当 3 对孔加工完后 , 松开工件, 回到初始状态。编 程 步 骤:1、创建 I/O变量表PLC输 入地址变量名PLC输 出 地址变量名I0.0启动 信号Q4.0夹紧执行I0.1工件夹紧Q4.1大钻头钻孔I0.2大钻头下限位开关Q4.2大钻头上升I0.3大钻头上限位开关Q4.3小钻头钻孔I0.4小钻头下限位开关Q4.4小钻头上升I0.5小钻头上限位开关Q4.5转盘旋转I0.6转盘旋转到位Q4.6松开执行I0.7工件松开2、创建 SFC图配置 C0I0.0,I0.3,I0.5RQ4.6; SQ4.0.I0.1Q4.1Q4.3I0.6I0.2I0.4Q4.5Q4.2Q4.4I0.3I0.5C0-1C0(未钻完)I0.7C0(已开6 个孔)R Q4.0SQ4.63、编写程序STL语句M 0.0M 0.1M 0.2M 0.5M 0.6M 0.3M 0.4M 0.7M 1.1M 1.0LAD 语句