分类 默认分类 下的文章

气缸有去工作位和去原位两种动作,同时为了检测是否到位,一般会配备磁性开关或者光电检测是否到达工作位和原位。如果给出输出,超时未到位,需要触发报警。

通常在急停状态下,需要断开去工作位和去原位的动作输出;在手动模式下,可以直接输出DO信号;在自动模式下,还需要考虑一些业务逻辑,比如互锁逻辑。

功能块声明如下:

FUNCTION_BLOCK Cylinder

VAR_INPUT
    emStop_nc : BOOL;            // 急停信号常闭点
    cmdReset : BOOL;              // 复位信号
    cmdWork : BOOL;              // 去工位
    cmdHome : BOOL;              // 去原位
    AutoMode : BOOL;             // true: 自动模式; false: 手动模式
    snWorkPos : BOOL;             // 工作位传感器
    snHomePos : BOOL;             // 原位传感器
    timeoutWork : TIME;          // 工作位超时时间
    timeoutHome : TIME;          // 原位超时时间
END_VAR

VAR_OUTPUT
    doWork : BOOL;               // 气缸伸出
    doHome : BOOL;              // 气缸缩回
    errWorkTimeout : BOOL;         // 工作位置超时报警
    errHomeTimeout : BOOL;         // 原位超时报警
    workPosDone : BOOL;          // 工作位到位完成
    homePosDone : BOOL;          // 原位到位完成
END_VAR

VAR
    timerWork : TON;             // 工作位置超时定时器
    timerHome : TON;             // 原位超时定时器
    emStopActive : BOOL;         // 急停激活标志
    resetHandled : BOOL;         // 复位已处理标志
END_VAR

气缸的业务非常简单,直接把业务逻辑翻译成代码即可:

阅读剩余部分

场景:在报警状态下,安灯上红灯需要一开一关的闪烁。

闪烁

本质上,我们需要创建一个功能块Blink,在未导通的情况下通过TON定时器延迟导通,而在导通后再通过TOF定时器延迟关闭,如此往复。

FUNCTION_BLOCK Blink

VAR_INPUT
    interval: TIME;
END_VAR

VAR_IN_OUT
    light: BOOL;
END_VAR

VAR
    TON_0: TON;
    TOF_0: TOF;
END_VAR

代码如下:

阅读剩余部分

我们在 CodeSys中 建立一个OPC UA服务端,并把相关变量通过OPC UA的方式暴露出来。然后,我们会通过第三方成熟且免费的UaExpert客户端,对服务端变量进行访问;最后,我们会以编程的方式,自己写代码实现对服务端变量的监视和控制。

OPC UA 服务端建立

为了测试,让我们编写一个简单程序:

PROGRAM PLC_PRG
VAR
    prod : INT;
    a : INT;
    b: INT;
END_VAR

prod := a * b;

a := a + 1;

符号配置

首先,右击Application,依次选择Add Object/Symbol Configuration:

阅读剩余部分

功能简述

  • 输入:

    • 启动按钮:按下后触发启动信号
    • 停止按钮:常闭点控制
  • 输出:

    • 接触器KM1控制电机的运行和停止
    • 接触器KM2控制以Y型接线启动;
    • 接触器KM3Δ型接线启动

功能实现

变量声明:

FUNCTION_BLOCK StartTriangleMotorStart

VAR_INPUT
    sbStart: BOOL;
    sbStop_nc : BOOL;
END_VAR

VAR_OUTPUT
    km1: BOOL;
    km2: BOOL;
    km3: BOOL;
END_VAR

VAR
    tonStartY: TON;
END_VAR

LD图如下,第一部分是常规的起保停控制电路,随后有个定时器负责切换导通KM2还是KM3

阅读剩余部分