欧姆龙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在这段代码里,我们首先定义了两个全局变量ProductionLineRunning和EquipmentFault,用来表示生产线的运行状态和设备是否故障。在主程序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;在这段触摸屏源码中,定义了StartButton和StopButton两个变量来表示启动和停止按钮的状态。当检测到StartButton被按下时,就向PLC发送启动命令PLCStartCommand;当StopButton被按下时,就发送停止命令PLCStopCommand。通过这样的方式,操作人员可以在触摸屏上方便地控制PLC的运行,实现人机交互。
欧姆龙NJ/NXPLC 全ST程序案例,全程序无加密,公司级框架,提供项目源码框架FB源码,触摸屏源码。 需要一定ST基础才能看懂。 重在分享编程思想 没用过该控制器的请慎用。 先安装1.2版本的环境 再升级到1.43 安装包里面的补丁一定要装。
这次分享的欧姆龙NJ/NX PLC全ST程序案例,从环境准备到公司级框架、FB源码以及触摸屏源码,希望能给大家带来一些编程思路上的启发。大家要是有什么问题或者想法,欢迎在评论区交流呀!