首页 > 其他分享 >力控组态实现延时5s延时触发,命令间隔200ms

力控组态实现延时5s延时触发,命令间隔200ms

时间:2024-11-28 19:14:00浏览次数:10  
标签:ControlVar 下置 5s 组态 延时 200ms 数据

最近做一个阀门开度随液位变化的程序,

液位设定一个目标值,

液位高于目标值,阀门开度减小;

液位低于目标值,阀门开度增加。

很明显,该程序适合用PID控制,

在大循环中计算阀门开度值,并下置给阀门,结果,设备经常离线

原因:

经分析,大循环中运行,数据下置太快,设备反应不过来,导致通讯超时,或者是撞包,组态没收到设备回复,导致设备离线。

总之,应该是下置数据据太快导致的离线。

解决方法:

建立中间变量,在大循环中计算开度值,赋值给中间变量。

建立一个延时触发的程序,每5s触发一次下置,命令间隔为200ms。

每5s触发一次下置:

首先,建立一个200ms的定时器,命令间隔200ms.

接着,在大循环中建立如下程序:

IF $Second % 5 == 0 THEN  //取系统时间的秒数据,对5求余,结果为0,则5s时间到
pp = 1;  //数据是否下置的标志
ENDIF

接着,在条件动作程序里:

条件:pp == 1 && #Timer.Status == 2

ControlVar = ControlVar + 1;  //指针指向下一条数据

IF ControlVar == 4 THEN   //一轮循环结束,将指针复位

  ControlVar = 0;     //命令间隔

  pp=0;           //5s一次循环

ENDIF

#Timer.Start();      //下置一次数据后,重启定时器

最后,在数据改变触发程序中:

if ControlVar == 1 then
        ///
        //下置哪条数据就将变量赋值给对应的IO点
        ///
    a1 = a1 + 1;//将指针指向下一条数据
endif

if ControlVar == 2 then
        ///
        //下置哪条数据就将变量赋值给对应的IO点
        ///
    a2 = a2 + 1;
endif

if ControlVar == 3 then
        ///
        //下置哪条数据就将变量赋值给对应的IO点
        ///
    a3 = a3 + 1;
endif

if ControlVar == 4 then
        ///
        //下置哪条数据就将变量赋值给对应的IO点
        ///
    a4 = a4 + 1;
endif    

完成!!!

 测试结果符合预期:

 

标签:ControlVar,下置,5s,组态,延时,200ms,数据
From: https://www.cnblogs.com/flash610/p/18574982

相关文章

  • 涂鸦革新WebRTC技术!让IPC监测低延时、高可靠更安全
            随着科技的飞速发展,越来越多人开始关注居家安全、食品安全、校园安全等领域,大家对实时监测的需求也在不断升级。想象一下,无论身处何地,只需轻触屏幕,就能实时查看家中、办公室或任何你关心的地方,这不再是科幻小说中的场景,因为通过WebRTC技术在IPC监测领域的......
  • web组态软件开发详细流程介绍
     什么是组态软件?组态软件是一种用于创建、配置和管理各种工业控制系统的应用程序。它通过用户友好的图形界面和先进的功能,使工程师能够实时监控和控制复杂的工业过程。一、组态软件的基本概念1.1组态软件的作用组态软件在工业控制系统中起到关键的作用。它可以实时......
  • BY组态-低代码web可视化组件
     简介BY组态是集实时数据展示、动态交互等一体的全功能可视化平台。帮助物联网、工业互联网、电力能源、水利工程、智慧农业、智慧医疗、智慧城市等场景快速实现数字孪生、大屏可视化、Web组态、SCADA等解决方案。具有实时监控、多样、变化、动态交互、高效、可扩展、支持自......
  • 中断的压栈操作、中断内部不可以有延时的动作?
    中断与压栈操作1.中断时的压栈操作当一个中断发生时,处理器会自动保存当前的状态(即上下文),以确保中断处理完成后能够恢复到中断发生前的状态。这些状态通常包括程序计数器(PC)、状态寄存器、通用寄存器等。具体过程:程序计数器(PC):保存当前执行的指令地址。当中断发生时,处理器会将当......
  • 11.25Scala
    案例:统计成绩1.按行读入文件importscala.io.Source//案例:统计成绩objectdd1{defmain(args:Array[String]):Unit={//1.按行读入文valsource=Source.fromFile("score.txt")valit=source.getLines()//迭代器it.next()//跳过第一行......
  • 基于MPC、PID、 ode15s的无人机开发模型预测控制研究(Matlab代码实现)
             ......
  • 基于MPC、PID、 ode15s的无人机开发模型预测控制研究(Matlab代码实现)
            ......
  • 10108-机械手柔性生产线物料分拣控制系统设计(说明书+设计资料源文件+运行软件+PLC组态
    10108-机械手柔性生产线物料分拣控制系统设计(说明书+设计资料源文件+运行软件+PLC组态王仿真+PPT)功能描述:机械手臂的应用主要是由内部执行机构驱动器以及内部电气控制设备组合而成。通过气动设备来实现机械手的快速精确运转,来保证货物可以被有效的抓取和移动。在机械手的......
  • 组态也能开发WEB前端 | uiotos致敬amis、nodered、appsmith、codewave、goview、datar
    WEB组态开发SCADA、HMI画面、大屏可视化,还比较常见。比如下面: UIOTOS组态示例那么常规WEB前端功能,组态能否一并做了呢?比如下面这种: UIOTOS前端示例答案是可以的!UIOTOS支持页面无限嵌套,能实现原型即应用。现在就以一个具体小示例介绍如何实现的。效果如下所示,初......
  • 物联网虚拟仿真系统对接ThingsBoard云平台实现数据的读取与组态控制
    面对物联网相关课程缺少设备或者设备难管理的问题,我们设计了一套物联网虚拟仿真系统,系统集成了多种虚拟传感器和网关设备,无需实体硬件即可模拟真实物联网环境。系统支持HTTP、modbusRTU、modbusTCP、MQTT、websocket等通信协议对接,因此支持app开发、微信小程序、web前端开发、......