欧姆龙NJ/NX PLC全ST程序案例分享:从框架到源码

欧姆龙NJ/NXPLC 全ST程序案例,全程序无加密,公司级框架,提供项目源码框架FB源码,触摸屏源码。 需要一定ST基础才能看懂。 重在分享编程思想 没用过该控制器的请慎用。 先安装1.2版本的环境 再升级到1.43 安装包里面的补丁一定要装。

嘿,各位PLC编程爱好者!今天来跟大家分享一个欧姆龙NJ/NX PLC的全ST程序案例,而且是无加密的公司级框架哦,同时还提供项目源码框架FB源码以及触摸屏源码~不过要提醒一下,这案例需要你有一定的ST基础才能看得懂,要是没用过该控制器,那可得慎用啦。

前期准备

在开始研究这些源码之前,环境安装可不能马虎。首先要安装1.2版本的环境,然后再升级到1.43。这里特别强调一下,安装包里面的补丁一定要装上,不然可能会出现各种意想不到的问题。这就好比搭建一座房子,地基打得稳,房子才能牢固嘛。

编程思想的核心——公司级框架

公司级框架是整个项目的骨架,它定义了整个项目的架构和运行逻辑。我们以一个简单的逻辑控制框架为例,假设我们有一个自动化生产线的控制项目。

// 定义一些全局变量
VAR_GLOBAL
    // 生产线运行状态标志
    ProductionLine_Running : BOOL;
    // 设备故障标志
    Equipment_Fault : BOOL;
END_VAR

// 主程序块
PROGRAM Main
    // 初始化部分
    ProductionLine_Running := FALSE;
    Equipment_Fault := FALSE;

    // 主逻辑部分
    IF NOT Equipment_Fault THEN
        ProductionLine_Running := TRUE;
        // 这里可以添加生产线运行时的具体逻辑,比如设备的启动顺序等
        // 例如启动输送带
        CALL Conveyor_Start;
    ELSE
        ProductionLine_Running := FALSE;
        // 处理故障逻辑,比如报警等
        CALL Alarm_Handle;
    END_IF;
END_PROGRAM

在这段代码里,我们首先定义了两个全局变量ProductionLineRunningEquipmentFault,用来表示生产线的运行状态和设备是否故障。在主程序Main中,先对这两个变量进行初始化。然后通过判断EquipmentFault来决定生产线是否运行。如果没有故障,就将ProductionLineRunning设为TRUE,并调用启动输送带的功能块ConveyorStart;要是有故障,就将ProductionLineRunning设为FALSE,并调用处理报警的功能块Alarm_Handle。这就是一个简单的基于状态判断的控制逻辑,在实际的公司级框架中,会更加复杂和全面,涵盖更多的功能和设备。

FB源码:功能块的魅力

功能块(FB)源码是实现具体功能的关键部分。以刚才提到的Conveyor_Start功能块为例:

// Conveyor_Start功能块定义
FUNCTION_BLOCK Conveyor_Start
VAR_INPUT
    // 输送带速度设定
    Conveyor_Speed : REAL;
END_VAR
VAR_OUTPUT
    // 输送带启动状态反馈
    Conveyor_Started : BOOL;
END_VAR
VAR
    // 内部变量,用于记录启动过程
    Starting_Process : INT := 0;
END_VAR

// 功能块逻辑
CASE Starting_Process OF
    0:
        // 检查输送带是否准备好启动
        IF Conveyor_Preparation_OK THEN
            Starting_Process := 1;
        END_IF;
    1:
        // 设置输送带速度
        Set_Conveyor_Speed(Conveyor_Speed);
        Starting_Process := 2;
    2:
        // 启动输送带
        Conveyor_Start_Command := TRUE;
        Conveyor_Started := TRUE;
        Starting_Process := 3;
    3:
        // 等待输送带稳定运行
        IF Conveyor_Running_Stable THEN
            Starting_Process := 4;
        END_IF;
    4:
        // 正常运行,保持状态
        Conveyor_Started := TRUE;
END_CASE
END_FUNCTION_BLOCK

这个ConveyorStart功能块接收一个输入参数ConveyorSpeed,也就是输送带的速度设定值,输出一个反馈值ConveyorStarted,表示输送带是否成功启动。功能块内部使用一个StartingProcess变量来记录启动过程的不同阶段。首先检查输送带是否准备好启动,准备好就进入设置速度阶段,然后发送启动命令,等待输送带稳定运行,最后保持运行状态。这样通过功能块的形式,将输送带启动这样一个复杂的功能模块化,方便在不同的地方调用,也便于维护和管理。

触摸屏源码:人机交互的桥梁

触摸屏源码则负责搭建起人与PLC之间交互的桥梁。以一个简单的启动停止按钮界面为例:

// 触摸屏界面相关变量定义
VAR
    // 启动按钮状态
    Start_Button : BOOL;
    // 停止按钮状态
    Stop_Button : BOOL;
END_VAR

// 界面逻辑处理
IF Start_Button THEN
    // 发送启动命令到PLC
    PLC_Start_Command := TRUE;
END_IF;

IF Stop_Button THEN
    // 发送停止命令到PLC
    PLC_Stop_Command := TRUE;
END_IF;

在这段触摸屏源码中,定义了StartButtonStopButton两个变量来表示启动和停止按钮的状态。当检测到StartButton被按下时,就向PLC发送启动命令PLCStartCommand;当StopButton被按下时,就发送停止命令PLCStopCommand。通过这样的方式,操作人员可以在触摸屏上方便地控制PLC的运行,实现人机交互。

这次分享的欧姆龙NJ/NX PLC全ST程序案例,从环境准备到公司级框架、FB源码以及触摸屏源码,希望能给大家带来一些编程思路上的启发。大家要是有什么问题或者想法,欢迎在评论区交流呀!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值