Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - steam_engineer

Страницы: [1]
1
Ваши вопросы / Re: Simple-Scada и Arduino
« : 09 Марта 2019, 19:50:04 »
Всем доброго времени суток!

Подключил датчик температуры DS18B20 к Ардуино, проверил как он работает через монитор порта - всё отлично, показания верные. Поставил задачу подружить с верхним уровнем. Вот скачал Simple-Scada 2 (2.3.4.0 | 19.02.2019), скачал и установил  Arduino OPC-сервер 2.0 из Ответа #140 этой темы (не забыв про "register.bat"),  ОРС Core Components (x64), и даже Arduino IDE 1.6.5, как писали в данной теме.
Код взял из Ответа #69:
Код: (c#)
#include <OPC.h>
#include <Bridge.h>
#include <Ethernet.h>
#include <SPI.h>
#include <OneWire.h>
 
OPCSerial aOPCSerial;
 
OneWire ds (4);
byte data[12];
byte addr1[8] = {0x28, 0xFF, 0x4F, 0x81, 0xA6, 0x16, 0x3, 0x1B}; // ID индивидуально для каждого датчика

unsigned int raw;
float temp1;
 
//OneWire oneWire(DS);
//DallasTemperature sensors(&oneWire);
float item_temperature1(const char *itemID, const opcOperation opcOP, const float value){
     temp1 = DS18B20(addr1);
     return  temp1;
}
 
void setup() {
 
  Serial.begin(9600);
  aOPCSerial.setup();
  aOPCSerial.addItem("T1", opc_read, opc_float, item_temperature1);
 }
 
void loop() {
  //sensors.requestTemperatures();
  aOPCSerial.processOPCCommands();
}
float DS18B20(byte *adres)
{
  ds.reset();
  ds.select(adres);
  ds.write(0x44, 1); // start conversion, with parasite power on at the end
  ds.reset();
  ds.select(adres);
  ds.write(0xBE); // Read Scratchpad
 
  for (byte i = 0; i < 9; i++) // можно увеличить точность измерения до 0.0625 *С (от 9 до 12 бит)
  { // we need 9 bytes
    data[i] = ds.read ();
  }
  raw =  (data[1] << 8) | data[0];//=======Пересчитываем в температуру
  float celsius =  (float)raw / 16.0;
  return celsius;
}

... и чуда не произошло.

Во-первых, смущает то что в Simole Scada и в ItemProperty у сервера номер 2 в конце, а ни как у всех 1: "ArduinoOPCServer.2".





Во-вторых, ItemProperty не видит адреса тегов, ровно как и Simple Scada:



У меня установлена Windows 10 Pro x64. Всё запускаю от имени администратора. пробовал код из Ответа #2 данной темы - всё то же самое.

Прошу у Вас помощи в решении данной ситуации. Может я что-то упустил?

Страницы: [1]