YFIOServer后台驱动算法优化

以前,虽然YFIOServer的驱动实现了各种PLC的通信(如PPI,MPI,Modbus等等),但是以前的IO变量读写并没有优化,所以当要访问的变量一多,效率就成为问题。

目前,采用了最新的优化算法(具体思路下面再说),效率提高了好多倍,有如下指标可以参考,以前用Prodave访问S7-300PLC(用MPI访问,波特率19200),10个变量,读一次,近500ms,目前经过优化,读1000个变量,不过200ms,效率提高了不知多少倍。

这样一来,YFIOServer终于实现了真正的工控应用,逐渐走向了工业现场。目前配水系统,四车系统都采用该后台,效果很好,编程也变得异常简单,不用在考虑太多的通信问题,直接访问后台就可以了。

配水系统

四车系统

--------------------

优化算法简介

--------------------

目的:因为与硬件进行通信最耗时,数据解析和类型转换倒不是瓶颈,所以用最快速的方法把要获取的数据或要写入的数据,整体一次性完成。

思路:访问的变量地址要归类,此外要排序,便于批量操作。

实现:在上位机内存中,建立硬件数据映射表,此外还要建立一个同样大小的标志表,根据变量地址和类型填写标志表的读写标志,最后程序统一更加读写标志完成读写。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
WDO(Wind Driven Optimization)风驱动优化算法是一种新型的启发式优化算法,其灵感来源于风的自然现象。WDO算法通过模拟风的自然现象,来实现对问题的优化求解。WDO算法具有收敛速度快、全局搜索能力强等优点,因此在多个领域都有应用,例如: - 机器学习领域:WDO算法可以用于优化支持向量机(SVM)的参数,提高SVM分类器的分类精度。 - 控制领域:WDO算法可以用于优化PID控制器的参数,提高控制系统的控制精度。 - 电力系统领域:WDO算法可以用于优化电力系统的调度问题,提高电力系统的经济性和稳定性。 - 机器人领域:WDO算法可以用于优化机器人的路径规划问题,提高机器人的运动效率和精度。 下面是一个WDO算法在SVM数据分类中的Python代码示例: ```python from sklearn import svm from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score from WDO import WDO # 加载数据集 X, y = load_data() # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # 定义SVM分类器 clf = svm.SVC() # 定义WDO算法 wdo = WDO(clf.fit, clf.score, X_train, y_train, lb=[0.1, 0.1, 0.1], ub=[100, 100, 100], dim=3, NP=50, max_iter=100) # 运行WDO算法 best_params = wdo.run() # 使用最优参数训练SVM分类器 clf.set_params(C=best_params[0], gamma=best_params[1], kernel='rbf') clf.fit(X_train, y_train) # 在测试集上评估分类器性能 y_pred = clf.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print('Accuracy:', accuracy) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值