雷赛LeadStudio平台下编写固件库并使用
工控笔记
前言
我最近视频号有分享了雷赛的小型PLC的SC2-C的自研平台系列的视频。本文作为补充的使用技能点。
正文
本文以我现在在编写的固件库作为分享的演示。
Step1: 新建项目 - 工程类型(固件库)
Step2: 建立全局变量表gC
VAR_GLOBAL
gPi : LREAL := 3.1415926 ;
END_VAR
Step3: 建立全局变量表gSysLib
VAR_GLOBAL
bAllwayOn : BOOL ;//常开
bAllwayOff : BOOL ;//常闭
bFirstOn : BOOL ;//上电On一次
b500msOnOff : BOOL ;//500ms On / 500ms Off
END_VAR
Step3: 建立程序Pro_Sys
PROGRAM Pro_Sys
VAR
i500OMsnOff:INT;
UliLast:ULINT;
UliNow:ULINT;
END_VAR
//上电初始化
IF NOT gSysLib.bFirstOn AND NOT gSysLib.bAllwayOn THEN
gSysLib.bFirstOn := TRUE ;
ELSIF gSysLib.bFirstOn AND gSysLib.bAllwayOn THEN
gSysLib.bFirstOn := FALSE ;
END_IF ;
//常开On
gSysLib.bAllwayOn := TRUE ;
//常Off
gSysLib.bAllwayOff := NOT gSysLib.bAllwayOn ;
//500msOnOff
CASE i500OMsnOff OF
0:
gSysLib.b500msOnOff := gSysLib.b500msOnOff XOR TRUE ;
UliLast := GetTickCountMs() ;
i500OMsnOff := 1 ;
1:
UliNow := GetTickCountMs() ;
IF UliNow >= (UliLast + 500 ) THEN
i500OMsnOff := 0 ;
END_IF ;
END_CASE ;
Step4: 编写固件库信息
Step5:编译 - 另存为编译库
Step6:新建项目 - 工程类型(程序)
Step6:加载编译好的库文件。
Step7:关于Pro_Sys程序的调用。
Pro_Sys();//直接在程序里面编写即可完成调用
其实固件库或者用户库的使用,是有效的减少反复造轮子的问题,也是我们应用工程师不断对使用产品的二次定制。
现在的LeadStudio v2.6.8的版本,暂时还有一个小小的Bug,就是如果我们需要对固件库进行二次更新,需要对已经编译过的文件先删除后或者另外到另外一个文件。(即同一个文件下不能有同名的文件存在。)这个问题我也反馈给雷赛的对应工程师了。
结尾
不管是软件,还是程序都是需要我们每一个人不断地迭代过来的。加油!