设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
博图实现电动机两种控制方法的集成
返回列表
发新帖
[西门子]
博图实现电动机两种控制方法的集成
[复制链接]
40288
|
0
|
2024-2-3 17:33:10
|
显示全部楼层
|
阅读模式
关键词:西门子PLC 博图 电动机 控制方式
普通电动机的控制方式主要有:单输出保持和双输出脉冲式。
两种方式各有优缺点,为了实现功能块通用,本文介绍把两种控制方式集成在一个功能块中的方法。
一、不用变量收起 一台电动机只会采用一种控制方式,把不用的隐藏起来,使程序显示显得整洁:
设置这个功能后,不用的变量可以收起:
二、双输出的逻辑实现 双输出的逻辑如下: #Motor_Data.BOOL_Run_1 := (#Motor_Data.Block_Enable AND #Motor_Data.Block_Run_Condition) OR NOT (#Motor_Data.Block_Enable); ///联锁和解除联锁 #Motor_Data.BOOL_Run_6 := #Motor_Data.Sim_Enable AND #Motor_Data.Sim_Central; /// 仿真集中信号 #Motor_Data.BOOL_Run_7 := #Motor_Data.Sim_Enable AND #Motor_Data.Sim_Power; /// 仿真电源信号 #Motor_Data.BOOL_Run_8 := #Motor_Data.Sim_Enable AND #Motor_Data.Sim_KH; /// 仿真热继电器 #Motor_Data.BOOL_Run_2 := (#Central OR #Motor_Data.BOOL_Run_6) AND (#Power OR #Motor_Data.BOOL_Run_7) AND (NOT (#Fail_KH) OR #Motor_Data.BOOL_Run_8); /// 启动条件 #Motor_Data.BOOL_Run_3 := #Motor_Data.Automatic AND #Motor_Data.Auto_Run; /// 自动控制 #Motor_Data.BOOL_Run_4 := #Motor_Data.Manual AND (#Motor_Data.SF OR #Motor_Data.StartUp_Hold); /// HMI手动控制 #Motor_Data.BOOL_Run_5 := #Motor_Data.Force_Enable AND #Motor_Data.Force_Run; /// 强制输出运行信号 #Motor_Data.BOOL_Stop_1 := (#Motor_Data.Block_Enable AND #Motor_Data.Block_Stop_Condition) OR NOT (#Motor_Data.Block_Enable); /// 联锁和解除联锁 #Motor_Data.BOOL_Stop_2 := #Motor_Data.Automatic AND #Motor_Data.Auto_Stop; ////// 自动控制 #Motor_Data.BOOL_Stop_3 := #Motor_Data.Manual AND (#Motor_Data.SS OR #Motor_Data.Stop_Hold); ///HMI手动控制 #Motor_Data.BOOL_Stop_4 := #Motor_Data.No_KM_ForceStop; /// 无反馈停车 #Motor_Data.BOOL_Stop_5 := #Motor_Data.Force_Enable AND #Motor_Data.Force_Stop; /// 强制输出停止信号 #Engine_Run := (#Motor_Data.BOOL_Run_1 AND #Motor_Data.#BOOL_Run_2 AND (#Motor_Data.#BOOL_Run_3 OR #Motor_Data.#BOOL_Run_4)) OR #Motor_Data.BOOL_Run_5; #Engine_Stop := (#Motor_Data.BOOL_Stop_1 AND (#Motor_Data.#BOOL_Stop_2 OR #Motor_Data.#BOOL_Stop_3)) OR #Motor_Data.#BOOL_Stop_4 OR #Motor_Data.#BOOL_Stop_5; 由于增加了很多附加功能,程序逻辑条件有点多,具体不用可以省略。 三、单输出的逻辑实现 单 输出的逻辑如下: #Motor_Data.BOOL_Hold_1 := (#Motor_Data.Block_Enable AND #Motor_Data.Block_Run_Condition) OR NOT (#Motor_Data.Block_Enable); ///联锁和解除联锁 #Motor_Data.BOOL_Hold_2 := (#Central OR #Motor_Data.BOOL_Run_6) AND (#Power OR #Motor_Data.BOOL_Run_7) AND (NOT (#Fail_KH) OR #Motor_Data.BOOL_Run_8) AND NOT #Motor_Data.SS; /// 启动条件 #Motor_Data.BOOL_Hold_3 := #Motor_Data.Automatic AND #Motor_Data.Auto_Start_Hold; /// 自动控制 #Motor_Data.BOOL_Hold_4 := #Motor_Data.Manual AND (#Motor_Data.SF OR #Feedback_KM OR #Motor_Data.StartUp_Hold); /// HMI手动控制 #Motor_Data.BOOL_Hold_5 := #Motor_Data.Force_Enable AND #Motor_Data.Force_Run; /// 强制输出运行信号 #Engine_Hold_Out := (#Motor_Data.BOOL_Hold_1 AND #Motor_Data.BOOL_Hold_2 AND (#Motor_Data.BOOL_Hold_3 OR #Motor_Data.BOOL_Hold_4)) OR #Motor_Data.BOOL_Hold_5; 单输出的自动条件是不是要保持也与具体的控制方式有关,可以采用设备运行反馈点自保,也可以采用自动条件一致保持。 四、基本的保护逻辑 1)输出保持:#Motor_Data.Time_Run_Delay_Dint := #Motor_Data.Time_Run_Delay * 1000;#Motor_Data.Time_Stop_Delay_Dint := #Motor_Data.Time_Stop_Delay * 1000;#Pulse_SF.IN := #Motor_Data.SF; ///集中启动#Pulse_SF();IF#Pulse_SF.Q THEN#Motor_Data.StartUp_Hold := 1; ///保持按钮状态,2秒后复位#Motor_Data.STATUS_Device_11 := FALSE; END_IF;#TON_StartUp_Hold(IN := #Motor_Data.StartUp_Hold, PT := DINT_TO_TIME(#Motor_Data.Time_Run_Delay_Dint), Q => #Auto_Start_Hold);IF#Auto_Start_Hold AND #Feedback_KM THEN#Motor_Data.StartUp_Hold := 0; /// 状态保持复位 END_IF;IF#Auto_Start_Hold AND NOT #Feedback_KM THEN#Motor_Data.STATUS_Device_10 := TRUE; //启动故障#Motor_Data.StartUp_Hold := 0; /// 状态保持复位 END_IF; 安装启动按钮后,保持几秒,防止鼠标快速点击时没有反应。 2)运行时间记录:#Pulse_Run_Time.IN := #Feedback_KM AND "FC1201_DB".Minute_1; ///运行计时#Pulse_Run_Time();IF#Pulse_Run_Time.Q THEN#Motor_Data.Run_minutes_ThisTime := #Motor_Data.Run_minutes_ThisTime + 1;#Motor_Data.Run_minutes_Total := #Motor_Data.Run_minutes_Total + 1; END_IF;IF#Motor_Data.Run_minutes_ThisTime >60 THEN#Motor_Data.Run_minutes_ThisTime := 0;#Motor_Data.Run_Hours_ThisTime := #Motor_Data.Run_Hours_ThisTime + 1; END_IF;IF#Motor_Data.Run_minutes_Total > 60 THEN#Motor_Data.Run_minutes_Total := 0;#Motor_Data.Run_Hours_Total := #Motor_Data.Run_Hours_Total + 1; END_IF; 设备运行时间是设备的一个重要数据,需要知道设备的本次运行时间 和总的运行时间,也可以作为维护保养的提示。 五、小结 每一个功能的实现,都要反复验证、测试,有些保护是在生产中总结出来的。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
xyjqmail
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』