一、第一步:确定 “设备框架与模块分工”(最优先)
核心目的
先明确 “这台设备(DEVICE:53)要做什么”“分几部分来实现”,就像盖房子先画 “户型图”。
对应文档内容
- 先拆分出 12 个核心模块(如
AUTO_INDIV_MODE_SETTING
“手动 / 自动切换”、Conveyance_start_conditi
“运行条件”、FAULT
“报警” 等)。
新手操作要点
- 列 “模块功能表”:把每个模块的作用写在纸上,比如:
- 模块 1:
Conveyance_start_conditi
→ 判断 “设备能不能启动”(原点、气源、安全门这些基础条件) - 模块 2:
FAULT
→ 设备出问题时 “亮红灯、停动作”(急停、安全门没关等报警) - 模块 3:
AUTO_INDIV_MODE_SETTING
→ 切换 “手动控制” 或 “自动控制”
- 模块 1:
- 避免一开始陷入细节:不用先管指令怎么写,先搞懂 “每个模块负责设备的哪部分功能”,文档已经帮你分好模块,新手可以直接沿用这个框架。
二、第二步:定义 “基础信号”(搭建 “积木零件”)
核心目的
PLC 程序的 “基础信号” 就像 “积木零件”—— 比如 “急停按钮”“启动按钮”“指示灯”“气缸”,必须先明确 “每个信号用什么编号表示”,后面才能用这些 “零件” 拼逻辑。
对应IO点内容
所有LD Rxxxx
(输入信号)、OUT Rxxxx
(输出信号)、CRxxxx
(常量)都是基础信号,比如:
- 输入信号:
R10000
= 启动按钮、R10001
= 停止按钮、R1000
= 急停按钮 - 输出信号:
R11500
= 自动启动允许指示灯、R1300
= 升降气缸上升 - 常量:
CR2002
= 永远 ON(比如 “设备通电后一直有效”)、CR2003
= 永远 OFF(备用,暂时不用)
新手操作要点
- 画 “信号IO对照表”:用表格记录每个编号的含义,避免记混,示例:
信号编号 类型 含义 R10000 输入(按钮) 启动按钮(按一下设备准备启动) R11500 输出(指示灯) 自动启动允许(灯亮才能自动运行) - 确认信号 “来源”:比如 “急停按钮 R1000” 是接在 PLC 硬件上的实际按钮,“气缸 R1300” 是接 PLC 输出的实际气缸,新手不用管硬件接线,但要知道 “编号对应实际设备零件”。
三、第三步:写 “全局基础条件”(判断 “设备能不能动”)
核心目的
先确定 “设备启动的前提”—— 比如 “急停没按、气源够、安全门关好”,这些条件不满足,设备任何动作都不能做。对应文档中的Conveyance_start_conditi
模块(最基础的 “准入逻辑”)。
对应文档内容
这个模块的核心是输出 “允许启动的信号”,比如:
R11000
= 设备总原点(设备回到初始位置,才能启动)R11001
= 进气源 OK(气缸要有气,才能动)R11004
= 安全门 OK(安全门关好,才允许运行)
新手操作要点
- 用 “一句话逻辑” 理解:比如 “设备总原点 R11000” 的逻辑是:
“只要 1st 工位回到原点(MR11000
),并且设备通电(CR2002
永远 ON),就说明设备在总原点,R11000
就会变成 ON”。 - 先写 “必须满足的条件”:比如 “进气源 OK R11001” 只要 “压力开关 T4 触发”(气压够了)就 ON,这个逻辑很简单,新手先从这种 “单一条件” 的逻辑写起,再叠加复杂条件。
四、第四步:写 “安全报警逻辑”(设备的 “安全阀”)
核心目的
设备出问题时(比如急停按了、安全门开了),要立刻 “停动作、亮红灯”,这是保障安全的关键,必须在 “设备能做动作” 之前写好。对应文档中的FAULT
模块。
对应文档内容
这个模块分 “公共报警”(影响整个设备)和 “工位报警”(只影响某个工位),比如:
- 公共报警:
LR35000
= 急停异常(只要急停按了,LR35000
就 ON,设备所有动作都停) - 工位报警:
LR701
=Unit01 工位异常(比如 1st 工位没回原点,这个工位就不能动)
新手操作要点
- “报警触发” 逻辑:比如 “急停异常 LR35000” 的逻辑是:
“只要急停按钮按了(T0
),或者之前已经触发过急停异常(LR35000
自己锁存),LR35000
就会 ON,同时触发公共报警LR501
,设备就不能动了”。 - “报警复位” 逻辑:报警后要 “按报警清除按钮 T1” 才能复位,比如
LR35000
需要 “按 T1” 才能变回 OFF,新手要记住 “报警必须有复位逻辑,不然设备一直停”。
五、第五步:写 “手动 / 自动模式切换”(确定 “怎么控制设备”)
核心目的
设备有两种控制方式:“手动”(人按按钮控制气缸、伺服)、“自动”(设备自己按流程跑),这一步要确定 “什么时候能切手动 / 自动”,对应文档中的AUTO_INDIV_MODE_SETTING
模块。
对应文档内容
核心是判断 “模式允许条件” 和 “切换 HMI 画面”,比如:
- 自动启动允许
R11500
:需要满足 “急停没按(T0
)、24V 通电(T5
)、设备总原点(R11000
)、气源 OK(R11001
)” 等 7 个条件,全部满足才能切自动。 - 手动启动允许
R11501
:只要 “设备在运行(T2
)、急停没按(T0
)、气源 OK(R11001
)”,就能切手动。
新手操作要点
- “条件叠加” 理解:自动模式要求严,手动模式要求松,新手可以用 “勾选框” 理解:
自动允许(R11500
)= □急停没按 + □24V 通电 + □设备原点 + □气源 OK + □安全门关 + □SD 卡好 + □点检完(全部打勾才 ON)。 - HMI 画面联动:比如自动模式允许后,HMI 画面会切到 “自动画面(
EM8=#17
)”,手动模式允许后切到 “手动画面(EM8=#21
)”,新手不用管画面怎么画,只要知道 “模式和画面要对应”。
六、第六步:写 “核心动作逻辑”(设备的 “核心功能”)
核心目的
这一步是 “设备真正干活的逻辑”,包括 “伺服控制(比如轴移动)、工位动作(比如气缸升降)、数据采集(比如压力 / 位移)”,对应文档中的Servo
(伺服)、Unit01
(1st 工位)、F318A
(数据采集)、KV-AM40V
(温度 / 扭矩)模块。
对应文档内容(以 “伺服回原点” 为例,新手最易理解)
Servo
模块中 “伺服回原点” 的逻辑:
- 触发条件:按 “原点复归按钮
R10002
”,并且 “设备在原点(MR11000
)、无报警(LR701
)”。 - 动作过程:伺服以 “启动速度 200、转速 1000” 回到原点,完成后输出 “原点记忆
MR5014
”(说明伺服已经在原点了)。 - 中断条件:急停按了(
T0
)或伺服出错(CR3007
),回原点会立刻停。
新手操作要点
- “分步骤” 写动作:比如 “1st 工位自动动作”(
Unit01
模块)分 9 步:
步 1:步进 A 开始 → 步 2:扫码 → 步 3:扫码判定 → 步 4:伺服到压入位置 → ... → 步 9:动作完成,新手按 “时间顺序” 写,每一步只做一件事。 - 依赖前面的基础逻辑:比如 “伺服启动” 必须满足 “伺服使能
R1212
”,而R1212
又依赖 “启动延时T10
、伺服无报警R1010
、急停没按T0
”—— 这些都是前面步骤已经写好的,直接用就行,不用重复写。
七、第七步:写 “数据统计与外部交互”(设备的 “记录与上报”)
核心目的
设备运行后要 “记生产数量(做了多少个产品)、报数据给上位系统(比如 MES)”,对应文档中的Main
(计数统计)和MES
模块。
对应文档内容
- 计数统计(
Main
模块):EM400
= 生产总数、EM402
= 合格数、EM404
= 不合格数,比如 “1st 工位循环完成(MR11315
)”,EM400
就加 1。
- MES 交互(
MES
模块):- 给 MES 发 “生产数据”(合格数
EM402
、合格率EM10100
)、“设备状态”(运行 / 暂停 / 故障),接收 MES 的 “条码校验结果”(比如条码重复会触发报警)。
- 给 MES 发 “生产数据”(合格数
新手操作要点
- “简单计数” 优先:比如 “生产数
EM400
” 的逻辑:“只要 1st 工位做完一个循环(MR11315
ON),EM400
就加 1”,新手先写这种 “触发一次加一次” 的简单计数。 - 外部交互放最后:MES 交互需要和上位系统对接,新手可以先写 “本地数据统计”(比如计数),等本地逻辑跑通了,再补 MES 的逻辑。
八、第八步:写 “预留与调试逻辑”(完善细节)
核心目的
处理 “暂时不用但以后可能用的功能”(预留模块),以及 “方便调试的逻辑”(比如计数清零、报警复位),对应文档中的FINISH_RUNNING
(排空,预留)、Main
(计数清零)模块。
对应文档内容
- 预留模块:
FINISH_RUNNING
(排空)目前只有 “排空按钮触发” 逻辑,“排空完成” 还没写,新手可以标注 “预留,后续完善”。 - 调试逻辑:
Main
模块中 “计数清零R10808
”—— 按这个按钮,EM400
(生产数)、EM402
(合格数)会变回 0,方便调试时重新计数。
新手操作要点
- 预留功能标清楚:比如
AUTO_RUNNING
模块只有END
,没实际逻辑,新手可以写注释 “这个模块以后放自动运行的主流程”,避免忘记。 - 加 “调试按钮”:比如 “报警清除
T1
”“计数清零R10808
”,这些按钮能帮你在调试时快速恢复设备状态,不用重新断电。
九、第九步:逻辑检查与仿真调试(最后一步,最关键)
核心目的
确保写的逻辑 “没 bug”—— 比如 “自动模式能正常启动、报警能触发、伺服能回原点”,新手推荐用 “PLC 仿真软件”(比如基恩士 KV STUDIO)先测试,再连硬件。
新手操作要点
- “逐模块测试”:
- 先测基础条件:手动触发 “急停
T0
”,看LR35000
(急停异常)是不是 ON,R11500
(自动允许)是不是 OFF(符合逻辑)。 - 再测核心动作:触发 “伺服回原点
MR11008
”,看MR5014
(原点记忆)是不是能 ON(说明回原点成功)。
- 先测基础条件:手动触发 “急停
- “找错技巧”:如果某个信号没按预期变 ON,就倒推 “它的条件是不是都满足”—— 比如
R11500
(自动允许)没 ON,就查 “急停T0
是不是 OFF?气源R11001
是不是 ON?原点R11000
是不是 ON?”,一个个排除。
总结:新手编写的 “黄金顺序”
- 搭框架(分模块,明确每个模块做什么)→ 2. 定义信号(列 I/O 表,知道每个编号对应什么)→ 3. 写基础条件(判断设备能不能启动)→ 4. 写报警(安全保障)→ 5. 写模式切换(手动 / 自动)→ 6. 写核心动作(伺服、工位、数据采集)→ 7. 写数据统计与 MES → 8. 加预留与调试逻辑 → 9. 仿真测试
这个顺序完全贴合文新手跟着这个步骤走,即使不会复杂编程,也能理解 “为什么文档里的模块要这么排列”“每个模块为什么先写这个指令、再写那个指令”。