设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
GxWork2结构化编程三 写一个继电器检测FB 及模拟运行 ...
返回列表
发新帖
[西门子]
GxWork2结构化编程三 写一个继电器检测FB 及模拟运行
[复制链接]
115
|
1
|
2024-1-29 19:42:54
|
显示全部楼层
|
阅读模式
GxWorks2的结构化编程,使用两种编程方式,LAD/FBD梯形图和功能块方式,以及ST文本语言方式。
实验内容:1,用ST语言写一个继电器检测FB块,根据继电器线圈和常开触点状态分别计时,超出设定限值,认为继电器故障。2,主程序使用LAD/FBD方式,调用上述FB块,分别对两个时间继电器实现检测,3,使用模拟运行方式,对上述程序进行模拟运行。
一,ST文本编写继电器检测FB
1,在左侧导航 >工程>程序部件>FB/FUN,在"FB/FUN"上打开右键菜单,选“新建数据”。
2,在左侧导航"FB/FUN"下增加了KtCheck条目,打开"局部标签",在局部标签中新建变量表。
VAR_INPUT:输入变量;
VAR_OUTPUT:输出变量;
VAR_IN_OUT:输入/输出变量;
VAR: 私有变量,其他程序调用(实例化)后,作为该实例的专有变量。
3,打开"程序本体",在编辑器中输入代码。
主要逻辑:
1,根据外部信号自检,外部输入自检信号,信号上升沿复位各计时器,和错误标志。先对线圈供电,收到常开触点闭合信号后,停止线圈供电;对两种情况分别计时,线圈得电和触点打开,线圈失电和触点闭合,若计时时间超出输入的限值,即置位故障标志。期间外部自检信号保持为ON;
2,正常运行时检测,外部线圈指令输入,根据指令状态对线圈供电,分别计时,若计时时间超出输入的限值,即置位故障标志。
3,计时通过特殊寄存器D8010实现,D8010=程序扫描时间,单位0.1ms,FB输入变量中的时间限值单位0.1s(100ms)。
二,在主程序中调用FB
1,在左侧导航 >工程>程序部件>main,其默认是“结构化梯形图/FBD”,打开编辑窗口,添加程序。
1),启动脉冲信号置位自检标志.
2),在导航栏“FB/FUN"下,选择“KtCheck”,右键菜单打开属性,可以选择是否“使用EN/ENO”,若不勾选,拖入到程序编辑器中时,块中没有EN输入点和ENO输出点。
3),在全局标签表中,新建变量“Kt1Check”和“Kt2Check”,类型为“KtCheck”.
4),将左侧FB/FUN下的KtCheck拖入编辑窗,或者点任务条上的图标,打开右侧部件选择窗,在FB栏下,将KtCheck拖入编辑窗。
5),为KtCheck的FB块,选择实例化变量,并连接各输入/输出变量。
6),复位自检标志。每个继电器线圈on时间限值和off时间限值相加,取其大者,再加20*0.1ms,经过上述时间后自检标志复位。
三,模拟运行
两个时间继电器的软元件地址:
1#线圈bCoilKt1>Y21 、1#常开触点bSignKt1>X30 ;
iTmKt1Pon>D1104、iTmKt1Poff>D1105;
2#线圈bCoilKt1>Y22、1#常开触点bSignKt2>X31 ;
iTmKt2Pon>D1110、iTmKt2Poff>D1111;
菜单>调试>模拟开始/停止:
工具>I/O系统设置:
建立软元件值输入的关系图表,保存执行I/O系统设定。
在仿真器中点“RUN”运行程序。
(完)
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
loveplc
|
2024-1-30 22:44:24
|
显示全部楼层
总结的不错
回复
支持
反对
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
gzdelta
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』