VS平台多任务执行思路请教

chenxicheng 2013-01-30 10:10:11
个人从事工控(PLC),PLC与VS的扫描和刷新方式不同,
在上百条任务同时执行时,PLC占据优势,整体扫描整体刷新,
而VS就个人接触,均为单任务扫描(VS开上百条进程不知道CPU会如何表现),
而PLC在大批数据高级运算字符信息处理通讯等方面编程难度和价位成倍提升,
所以想引入VS控制方式,而多任务执行又成为解决问题的首要问题。
假设系统环境要求如下:
1.此系统有:报警、手动、自动、复位 四种状态
a.报警:系统驱动执行某个任务,而等待N秒后发现此任务还未执行完成,这时候我需要界面提示出来
b.手动:系统在通过界面操作执行某个单独的任务
c.自动:系统复位完成并且无故障时,可以通过操作某个触发机制,上百个工站按照事先编辑好的任务同时执行,而每个工站内依次有若干任务,执行过程中如有执行任务超时需立即暂停所有自动运行任务,自动运行如无故障,单个工站的任务可循环执行,直到按下暂停按钮,所有自动任务暂停执行。
d.复位:系统在没有自动运行而且没有警报的情况下按照事先编辑好的任务依次执行。
系统任务如上所述,PLC执行此类任务毫无压力,而VS编程如何处理多任务刷新小弟暂时还没有完美的方案,还请各位大侠支招,只求思路,执行框架即可。
...全文
661 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenxicheng 2013-04-06
  • 打赏
  • 举报
回复
引用 5 楼 caozhy 的回复:
这种前人都解决的问题,你不去查查论文,而是闭门造车胡乱用自己的想象解决问题本身就不靠谱。
既然在这里寻思路就是求创新求严谨,欧系的可编程控制都是采用STL扫描刷新输出的效果,注意过欧系和日系的自然明白,也不劳大师在这空喊,你若想说明你懂,请来点猛料,不然就蹲着,做技术BS放空炮的!
现在还是人类 2013-02-06
  • 打赏
  • 举报
回复 1
其实你这么想,再怎么样多的下位机,都是通过一条线通讯,而一条线要能稳定处理这么多数据,也是依靠这些数据能很好的排队处理而来的,就像网络通讯,就是一个个的IP包排队处理的。所以对于数据包的处理时间、等待返回、弃包、任务队列等操作尤为重要。只要按照这个“时”、“序”的概念去弄,肯定是没错的。
threenewbee 2013-02-06
  • 打赏
  • 举报
回复
这种前人都解决的问题,你不去查查论文,而是闭门造车胡乱用自己的想象解决问题本身就不靠谱。
嗷嗷叫的老马 2013-02-04
  • 打赏
  • 举报
回复
PLC中的所谓多任务,大多数实际上也是通过扫描来实现的,并不是真正的并行,只有少量高性能PLC使用的是CPLD,FPGA之类的器件,这些才是完全并行,每个逻辑功能都是独立的硬件逻辑门去实现的,当然贵很多. 比如你所说的多IO的判断与执行,普通PLC仍然是扫描所有IO状态然后提交给处理过程去按用户编写的规则进行处理并最终输出结果. 只不过,由于是在硬件级别运行,因此速度方面比起层层封装的PC+WINDOWS系统+应用软件优得多,有些功能甚至还可以使用硬件中断来响应,从人的角度宏观来看,它们的处理是完全并行的,因为PLC可以轻易做到每秒扫描端口100次以上. 而完全并行的PLC,通过对CPLD或FPGA这种器件的编程,可以实现使用硬件逻辑电路实现功能的效率,响应几乎是实时的,比如汽车的ECU中就大量采用类似的器件来实现,但不便宜. 跑远了.... 对于你的问题,其实没啥问题的...只需要做一个结构来处理多个任务的计时与状态判定即可.
引用 楼主 chenxicheng 的回复:
假设系统环境要求如下: 1.此系统有:报警、手动、自动、复位 四种状态 a.报警:系统驱动执行某个任务,而等待N秒后发现此任务还未执行完成,这时候我需要界面提示出来 b.手动:系统在通过界面操作执行某个单独的任务 c.自动:系统复位完成并且无故障时,可以通过操作某个触发机制,上百个工站按照事先编辑好的任务同时执行,而每个工站内依次有若干任务,执行过程中如有执行任务超时需立即暂停所有自动运行任务,自动运行如无故障,单个工站的任务可循环执行,直到按下暂停按钮,所有自动任务暂停执行。 d.复位:系统在没有自动运行而且没有警报的情况下按照事先编辑好的任务依次执行。
你这个要求中,有几个关键点. 一是记录任务开始时间. 二是记录任务完成时间. 三是记录任务完成状态. 四是判断任务执行时间,用于判定超时. 实现这几个关键点,其它的就非常好做了,而这几个关键点使用一个结构就好做了,如下:
private type TaskType
    TaskID as long        '任务ID
    StartTime as long     '开始时间
    FinishTime as long    '完成时间
    State as long         '0=停止,1=执行,2=错误
    RunningTime as long   '执行时间
    TimeOutValue as long  '超时时间
end type
定义一个上面类型的动态数组,在你添加任务时增加一个与任务相关的成员,写入相关的参数(超时时间,关联的任务ID等),并在任务开始时记录当时的时间戳(使用GetTickCount函数). 然后你肯定会有一个主循环或类似的机制判断每个任务的状态,在得到任务状态后,写入State.然后再次调用GetTickCount将当前值写入RunningTime中. 然后就可以判断当前的任务的经过时间(RunningTime - StartTime),与当前任务的超时时间(TimeOutValue)比较,就能知道是否超时. 而判断State就能得到当前任务的状态,根据不同状态触发不同的处理方式,比如State=1并且上面的判断没超时,就继续下一个任务判断;State=2的话就设置所有任务为停止状态,并通知界面,XX号任务超时中止. 其它的处理就与此类似了,很简单吧嘿嘿.
熊孩子开学喽 2013-01-30
  • 打赏
  • 举报
回复
PLC的"任务"和PC中的"任务"不是一个概念. PLC中开关一个继电器也算一个任务. 对照PC来说,只是设置一个逻辑变量为0或1而已.
vansoft 2013-01-30
  • 打赏
  • 举报
回复
写文字比较累,也写不清楚。画图说比较容易。 VB6可以写多线程,但成功的能实用的我一直没见过。
【SCI复现】含可再生能源与储能的区域微电网最优运行:应对不确定性的解鲁棒性与非预见性研究(Matlab代码实现)内容概要:本文围绕含可再生能源与储能的区域微电网最优运行展开研究,重点探讨应对不确定性的解鲁棒性与非预见性策略,通过Matlab代码实现SCI论文复现。研究涵盖多阶段鲁棒调度模型、机会约束规划、需求响应机制及储能系统优化配置,结合风电、光伏等可再生能源出力的不确定性建模,提出兼顾系统经济性与鲁棒性的优化运行方案。文中详细展示了模型构建、算法设计(如C&CG算法、大M法)及仿真验证全过程,适用于微电网能量管理、电力系统优化调度等领域的科研与工程实践。; 适合人群:具备一定电力系统、优化理论和Matlab编程基础的研究生、科研人员及从事微电网、能源管理相关工作的工程技术人员。; 使用场景及目标:①复现SCI级微电网鲁棒优化研究成果,掌握应对风光负荷不确定性的建模与求解方法;②深入理解两阶段鲁棒优化、分布鲁棒优化、机会约束规划等先进优化方法在能源系统中的实际应用;③为撰写高水平学术论文或开展相关课题研究提供代码参考和技术支持。; 阅读建议:建议读者结合文档提供的Matlab代码逐模块学习,重点关注不确定性建模、鲁棒优化模型构建与求解流程,并尝试在不同场景下调试与扩展代码,以深化对微电网优化运行机制的理解。
个人防护装备实例分割数据集 一、基础信息 数据集名称:个人防护装备实例分割数据集 图片数量: 训练集:4,524张图片 分类类别: - Gloves(手套):工作人员佩戴的手部防护装备。 - Helmet(安全帽):头部防护装备。 - No-Gloves(未戴手套):未佩戴手部防护的状态。 - No-Helmet(未戴安全帽):未佩戴头部防护的状态。 - No-Shoes(未穿安全鞋):未佩戴足部防护的状态。 - No-Vest(未穿安全背心):未佩戴身体防护的状态。 - Shoes(安全鞋):足部防护装备。 - Vest(安全背心):身体防护装备。 标注格式:YOLO格式,包含实例分割的多边形坐标和类别标签,适用于实例分割任务。 数据格式:来源于实际场景图像,适用于计算机视觉模型训练。 二、适用场景 工作场所安全监控系统开发:数据集支持实例分割任务,帮助构建能够自动识别工作人员个人防护装备穿戴状态的AI模型,提升工作环境安全性。 建筑与工业安全检查:集成至监控系统,实时检测PPE穿戴情况,预防安全事故,确保合规性。 学术研究与创新:支持计算机视觉在职业安全领域的应用研究,促进AI与安全工程的结合。 培训与教育:可用于安全培训课程,演示PPE识别技术,增强员工安全意识。 三、数据集优势 精准标注与多样性:每个实例均用多边形精确标注,确保分割边界准确;覆盖多种PPE物品及未穿戴状态,增加模型鲁棒性。 场景丰富:数据来源于多样环境,提升模型在不同场景下的泛化能力。 任务适配性强:标注兼容主流深度学习框架(如YOLO),可直接用于实例分割模型开发,支持目标检测和分割任务。 实用价值高:专注于工作场所安全,为自动化的PPE检测提供可靠数据支撑,有助于减少工伤事故。

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧