设为首页
收藏本站
开启辅助访问
切换到窄版
积分充值
登录
立即注册
微信扫码登录
首页
首页
共享资源
BBS
视频教程
AI机器人
VIP充值
论坛
搜索
搜索
程序分享
文库分享
软件下载
变频手册
干货教程
成套课件
新版AI机器人
老版GPT
最新提现记录
恭喜
admin
于 2023-6-6 15:17 成功提现
500元
恭喜
admin
于 2023-5-3 09:45 成功提现
400元
本版
用户
智控联盟
»
共享资源
›
精选专区
›
ChatGPT专区
›
编程序专区
›
三个电磁阀a,b,c轮流接通
返回列表
发新帖
三个电磁阀a,b,c轮流接通
[复制链接]
1911
|
3
|
2023-3-31 21:40:46
|
显示全部楼层
|
阅读模式
要求如下:1.当启动信号为1时,三个电磁阀a,b,c轮流循环通电。
2.通电间隔时间为120秒,每个电磁阀通电持续时间为2秒
3.用西门子博图V15写一个FB
4.编程语言用SCL
回复
使用道具
举报
chatGPT_小柔
|
2023-3-31 21:43:17
|
显示全部楼层
以下是实现三个电磁阀轮流接通的SCL代码:
[code]
FUNCTION_BLOCK FBRotateValve
TITLE = \"Rotate valve function block\"
VAR_INPUT
StartSignal : BOOL; // 启动信号
END_VAR
VAR_OUTPUT
ValveA : BOOL; // 电磁阀A输出
ValveB : BOOL; // 电磁阀B输出
ValveC : BOOL; // 电磁阀C输出
END_VAR
VAR
Timer1 : TON; // 计时器1,用于计算通电持续时间
Timer2 : TON; // 计时器2,用于计算通电间隔时间
ValveIndex : INT := 0; // 当前接通的电磁阀编号,0表示未接通任何电磁阀
LastTime : TIME := T#0s; // 上次接通电磁阀的时间点
END_VAR
// Constants
CONST
SwitchInterval : TIME := T#120s; // 通电间隔时间
ValveDuration : TIME := T#2s; // 电磁阀通电持续时间
END_CONST
// Main logic
BEGIN
IF StartSignal THEN
// 计时器2判断是否需要切换电磁阀
IF NOT Timer2(IN := TRUE, PT := SwitchInterval) THEN
// 未到切换时间,继续保持当前电磁阀通电
CASE ValveIndex OF
0:
ValveA := FALSE;
ValveB := FALSE;
ValveC := FALSE;
1:
ValveA := TRUE;
ValveB := FALSE;
ValveC := FALSE;
2:
ValveA := FALSE;
ValveB := TRUE;
ValveC := FALSE;
3:
ValveA := FALSE;
ValveB := FALSE;
ValveC := TRUE;
END_CASE
ELSE
// 到达切换时间,切换到下一个电磁阀
ValveIndex := ValveIndex + 1;
IF ValveIndex > 3 THEN
ValveIndex := 1;
END_IF
LastTime := TIMER() - ValveDuration; // 记录切换时间,用于计时器1的时间累积
END_IF
// 计时器1控制电磁阀通电持续时间
Timer1(IN := (ValveIndex <> 0 AND Timer2.Q)), PT := ValveDuration;
IF Timer1.Q THEN
ValveA := FALSE;
ValveB := FALSE;
ValveC := FALSE;
ELSE
CASE ValveIndex OF
0:
ValveA := FALSE;
ValveB := FALSE;
ValveC := FALSE;
1:
ValveA := TRUE;
ValveB := FALSE;
ValveC := FALSE;
2:
ValveA := FALSE;
ValveB := TRUE;
ValveC := FALSE;
3:
ValveA := FALSE;
ValveB := FALSE;
ValveC := TRUE;
END_CASE
END_IF
ELSE
// 停止信号,关闭所有电磁阀
ValveA := FALSE;
ValveB := FALSE;
ValveC := FALSE;
ValveIndex := 0;
Timer1(IN := FALSE);
Timer2(IN := FALSE);
END_IF
END_FUNCTION_BLOCK
[/code]
在主程序中,可以实例化这个FB并进行测试:
[code]
PROGRAM Main
TITLE = \"Main program\"
VAR
FBRotate : FBRotateValve; // 实例化轮流接通电磁阀的函数块
StartSignal : BOOL := FALSE; // 启动信号
END_VAR
// Main logic
BEGIN
// 模拟启动信号
IF T#1s THEN
StartSignal := TRUE;
ELSE
StartSignal := FALSE;
END_IF
// 调用轮流接通电磁阀的函数块
FBRotate(StartSignal := StartSignal);
// 显示当前电磁阀状态
IF FBRotate.ValveA THEN
// 电磁阀A接通中
// ...
END_IF
IF FBRotate.ValveB THEN
// 电磁阀B接通中
// ...
END_IF
IF FBRotate.ValveC THEN
// 电磁阀C接通中
// ...
END_IF
END_PROGRAM
[/code]
回复
使用道具
举报
huangahoo
|
2023-3-31 21:49:48
|
显示全部楼层
你知道两级风选机吗
回复
使用道具
举报
chatGPT_小柔
|
2023-3-31 21:50:53
|
显示全部楼层
是的,两级风选机是一种常用于废旧物资回收及再生利用行业中的设备。其主要作用是对混合的废旧物料进行风力分离,将较轻的杂质和较重的有价值的物资分开。
两级风选机通常由上下两个部分组成,其中上部为预选分离部分,下部为风力分离部分。在上部,通过振动和筛分等方式将混合物料进行初步分类和分离,然后再通过风力分离部分进行精细分离。具体而言,在风力分离部分,会通过调整风力大小和方向,将混合物料分割成较轻和较重两部分,分别进入不同的出料口,从而实现物料的分离和回收利用。
两级风选机具有结构简单、运行稳定、分选效果好、低能耗等特点,已广泛应用于废旧物资、建筑垃圾、矿产等行业中。
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
huangahoo
1
主题
2
帖子
24
积分
新手上路
新手上路, 积分 24, 距离下一级还需 26 积分
新手上路, 积分 24, 距离下一级还需 26 积分
积分
24
加好友
发消息
回复楼主
返回列表
用户使用心得及帮助
GPT3.5免费体验版
GPT3.5完整版(VIP免费)
自控工程师3.5(VIP免费)
伺服变频维修工程师(VIP免费)
GPT4.0-完整版-线路1(VIP免费)
GPT4.0-完整版-线路2(VIP免费)
GPT4.0-完整版-线路3(VIP免费)
自控工程师4.0版-线路1(VIP免费)
自控工程师4.0版-线路2(VIP免费)
自控工程师4.0版-线路3(VIP免费)
WinCC脚本编程机器人(VIP免费)
万能程序翻译
编程序专区