设为首页
收藏本站
开启辅助访问
切换到窄版
积分充值
登录
立即注册
微信扫码登录
首页
首页
共享资源
BBS
视频教程
AI聊天机器人
VIP充值
论坛
搜索
搜索
程序分享
文库分享
软件下载
变频手册
干货教程
成套课件
使用必看
GPT3.5免费体验版
万能程序翻译
WinCC脚本编程机器人(VIP免费)
GPT3.5完整版(VIP免费)
自控工程师3.5(VIP免费)
GPT4.0完整版-线路1(VIP免费)
自控工程师4.0版-线路1(VIP免费)
GPT更多线路及版本
最新提现记录
恭喜
admin
于 2023-6-6 15:17 成功提现
500元
恭喜
admin
于 2023-5-3 09:45 成功提现
400元
本版
用户
智控联盟
»
共享资源
›
精选专区
›
ChatGPT专区
›
编程序专区
›
三个电磁阀a,b,c轮流接通
返回列表
发新帖
三个电磁阀a,b,c轮流接通
[复制链接]
1503
|
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免费)
万能程序翻译
编程序专区