Node-RED系列教程-23node-red获取OPCDAServer数据

安装节点:

安装后的节点如下:

运行自主研发的工业数据交互软件,使用C#开发,可将各类协议转成Opc Da。

支持的功能如下:

 软件运行后如下;

 

数据库转成的OPC数据:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Node-RED是工业网物联网的重要组成部分,我最开始接触Node-RED,也算是一个偶然的机会吧,上班后领导安排我的第一个任务就是调研一下Node-RED,我之后上网查了一下,那个时候网上相对于Node-RED的资料也比较少,只知道它是IBM公司的一个开源项目。直到最近,发现许多大公司的产品都支持Node-RED,比如西门子公司的IoT2000,研华公司的WISE PaaS 网关,美国OPTO 22等设备中都安装了Node-RED,表明它在工业物联网和控制中已经广泛应用了。 那么工业物联网为什么要用它?它又处于工业物联网那个层次?它具有哪些特性?它帮助物联网解决了什么问题?为什么说它是柔性动态可重构的解决方案呢? ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 本门课程,老师将带领你从Node-RED的发展,工业物联网定位开始讲解,并带领着大家进行手把手安装Node-RED,实际操作演练Node-RED,并搭建一个物联网小平台,给大家带来更好的学习效果。  ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 为了能够让小伙伴们快速了解本门课程的结构,本门课程从以下几个方面展开:Node-RED入门Node-RED安装与配置Node-RED教学实战Node-RED的优势与不足Node-RED能为我们带来什么Node-RED总结与展望
下面是使用红外循迹传感器和PID控制算法控制差速转向小车的示例代码,使用Arduino IDE编写: ``` //定义红外循迹传感器的引脚号 #define LEFT_SENSOR A0 #define RIGHT_SENSOR A1 //定义电机控制引脚号 #define LEFT_MOTOR_PIN 5 #define RIGHT_MOTOR_PIN 6 //定义PID控制算法的参数 #define KP 1.2 #define KI 5 #define KD 0.1 //定义PID控制器 class PIDController { private: double _kp, _ki, _kd; double _targetValue; double _error, _lastError, _sumError; unsigned long _lastTime; public: PIDController(double kp, double ki, double kd) { _kp = kp; _ki = ki; _kd = kd; _targetValue = 0; _error = 0; _lastError = 0; _sumError = 0; _lastTime = millis(); } void setTargetValue(double targetValue) { _targetValue = targetValue; } double compute(double inputValue) { unsigned long currentTime = millis(); double deltaTime = (double)(currentTime - _lastTime) / 1000; _lastTime = currentTime; _error = _targetValue - inputValue; _sumError += _error * deltaTime; double deltaError = (_error - _lastError) / deltaTime; _lastError = _error; double outputValue = _kp * _error + _ki * _sumError + _kd * deltaError; return outputValue; } }; //定义PID控制器实例 PIDController pid(KP, KI, KD); void setup() { pinMode(LEFT_SENSOR, INPUT); pinMode(RIGHT_SENSOR, INPUT); pinMode(LEFT_MOTOR_PIN, OUTPUT); pinMode(RIGHT_MOTOR_PIN, OUTPUT); pid.setTargetValue(0.5); //设置目标值为0.5 } void loop() { //读取红外循迹传感器的值 int leftSensorValue = analogRead(LEFT_SENSOR); int rightSensorValue = analogRead(RIGHT_SENSOR); double sensorValue = (double)(leftSensorValue + rightSensorValue) / 2.0 / 1023.0; //计算PID控制算法的输出值 double outputValue = pid.compute(sensorValue); //将输出值转换成电机控制信号 int leftMotorSpeed = 255 * (1 - outputValue); int rightMotorSpeed = 255 * (1 + outputValue); //控制小车的转向 analogWrite(LEFT_MOTOR_PIN, leftMotorSpeed); analogWrite(RIGHT_MOTOR_PIN, rightMotorSpeed); } ``` 上述代码中,首先定义了红外循迹传感器的引脚号和电机控制引脚号。然后定义了PID控制器的参数和实例,包括比例系数、积分系数、微分系数、目标值和误差等。在`setup()`函数中,初始化了引脚和目标值。在`loop()`函数中,读取红外循迹传感器的值,并根据PID控制算法计算输出值。最后将输出值转换成电机控制信号,控制小车的转向。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荒先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值