电梯群控(2 台电梯)、故障记录存储(CSV 文件)_第1页
电梯群控(2 台电梯)、故障记录存储(CSV 文件)_第2页
电梯群控(2 台电梯)、故障记录存储(CSV 文件)_第3页
电梯群控(2 台电梯)、故障记录存储(CSV 文件)_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电梯群控(2台电梯)、故障记录存储(CSV文件)语音提示三大高频实用功能,同时补充欧姆龙CP1HPLC的适配示例,所有代码可直接落地使用。一、新增核心功能命令语言(通用适配西门子/三菱)1.电梯群控(2台电梯)逻辑适用于写字楼/商场常见的2台电梯联动控制,核心是“就近派梯”,在应用程序命令语言中编写:c运行//电梯群控(1号/2号电梯)-全局循环执行//定义变量://PLC1_Floor(1号梯当前楼层)、PLC2_Floor(2号梯当前楼层)//PLC_Call_5_Up(5楼上行呼梯)、$Dispatch_Elevator(派梯结果:1/2)IFPLC_Call_5_Up==1ANDPLC1_Error==0ANDPLC2_Error==0THEN//计算两台电梯到5楼的距离Dist1=ABS(PLC1_Floor-5);Dist2=ABS(PLC2_Floor-5);//就近派梯IFDist1<Dist2THEN$Dispatch_Elevator=1;PLC1_Call_5_Up=1;//给1号梯下发5楼呼梯PLC1_Up_Run=1;!Prompt("已派1号电梯前往5楼");ELSEIFDist2<Dist1THEN$Dispatch_Elevator=2;PLC2_Call_5_Up=1;//给2号梯下发5楼呼梯PLC2_Up_Run=1;!Prompt("已派2号电梯前往5楼");ELSE//距离相等,优先派空闲电梯(未运行的)IFPLC1_Up_Run==0ANDPLC1_Down_Run==0THEN$Dispatch_Elevator=1;PLC1_Call_5_Up=1;!Prompt("1/2号梯距离相同,派空闲的1号梯");ELSE$Dispatch_Elevator=2;PLC2_Call_5_Up=1;!Prompt("1/2号梯距离相同,派空闲的2号梯");ENDIFENDIFENDIF//派梯后清除公共呼梯指令IF$Dispatch_Elevator!=0THENPLC_Call_5_Up=0;ENDIF2.故障记录存储(CSV文件)将电梯故障时间、类型、楼层等信息写入CSV文件,便于后期追溯,在事件命令语言(PLC_Error=1时执行)中编写:c运行//故障记录存储-故障触发时执行//定义变量://$Error_Type(故障类型:1=门故障,2=楼层故障,3=运行故障)//$Error_File_Path(文件路径:"D:\电梯故障记录.csv")//第一步:判断是否为新故障(避免重复记录)IFPLC_Error==1AND$Last_Error_State==0THEN//拼接记录内容(时间,故障类型,当前楼层,电梯编号)$Error_Record=$SystemTime+","+STR($Error_Type)+","+STR(PLC_Floor)+",1号梯";//第二步:写入CSV文件(追加模式)!SaveDataToFile($Error_File_Path,$Error_Record,1);//1=追加模式//第三步:弹窗提示+更新故障状态!Prompt("故障已记录:"+$Error_Record);$Last_Error_State=1;//标记为已记录ELSEIFPLC_Error==0THEN$Last_Error_State=0;//故障恢复,重置标记ENDIFCSV文件示例输出:plaintext2026-01-0910:23:45,1,4,1号梯2026-01-0914:15:22,2,-1,2号梯3.语音提示功能组态王通过调用Windows系统语音接口实现语音播报(如“已到达3楼”“电梯故障”),在对应触发逻辑中添加:c运行//语音提示-适配到达楼层/故障/呼梯场景//1.到达楼层语音(数据改变命令语言,PLC_Floor变化时)IFPLC_Floor==3THEN!ShellExecute("PowerShell","-CommandAdd-Type-AssemblyNameSystem.Speech;$speak=New-ObjectSystem.Speech.Synthesis.SpeechSynthesizer;$speak.Speak('已到达3楼')","","open",1);ENDIF//2.故障语音(应用程序命令语言)IFPLC_Error==1THEN!ShellExecute("PowerShell","-CommandAdd-Type-AssemblyNameSystem.Speech;$speak=New-ObjectSystem.Speech.Synthesis.SpeechSynthesizer;$speak.Speak('电梯故障,请等待维修')","","open",1);ENDIF//3.呼梯成功语音(按钮命令语言)!ShellExecute("PowerShell","-CommandAdd-Type-AssemblyNameSystem.Speech;$speak=New-ObjectSystem.Speech.Synthesis.SpeechSynthesizer;$speak.Speak('呼梯成功,电梯即将到达')","","open",1);注:该功能需Windows系统启用PowerShell,且组态王运行权限为管理员。二、欧姆龙CP1HPLC适配示例欧姆龙CP1H的寄存器格式与西门子/三菱不同,以下是核心变量映射和选层命令语言:1.欧姆龙CP1H变量映射(组态王侧)变量名类型PLC寄存器地址说明PLC_Floor整数型DM100当前楼层(1-10)PLC_Call_Inside6离散型HR1.5轿厢内6楼选层指令PLC_Door_Open离散型OUT000开门控制(1=开)PLC_Up_Run离散型HR3.0上行运行状态PLC_Error离散型IN001故障信号(1=故障)2.欧姆龙CP1H轿厢选层命令语言c运行//欧姆龙CP1H-6楼选层按钮(按下执行)IFPLC_Error==0THENIFPLC_Floor!=6THENPLC_Call_Inside6=1;//HR1.5置1IFPLC_Floor<6THENPLC_Up_Run=1;//HR3.0置1!Prompt("已选6楼,电梯上行");ELSEPLC_Down_Run=1;//HR3.1置1!Prompt("已选6楼,电梯下行");ENDIFELSEPLC_Call_Inside6=0;!Prompt("当前已在6楼,自动开门");!Delay(1000);PLC_Door_Open=1;//OUT000置1ENDIFELSE!Prompt("电梯故障,无法选层");ENDIF三、关键注意事项群控逻辑:需确保两台电梯的PLC变量前缀区分(如PLC1_/PLC2_),避免变量冲突;文件存储:CSV文件路径需用绝对路径,且组态王有权限写入该目录(建议放在D盘,避免C盘权限问题);语音功能:若PowerShell调用失败,可将语音命令封装为.bat脚本,组态王通过!ShellExecute调用脚本。总结电梯群控核心是“就

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论