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

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

Автор Тема: Simple-Scada и Arduino  (Прочитано 76443 раз)

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 2998
    • Просмотр профиля
    • Simple-Scada
Re: Simple-Scada и Arduino
« Ответ #135 : 23 Июня 2017, 09:17:23 »
Трудно сказать почему возникает эта ошибка. Этот вопрос связан c Arduino OPC Server.

cuperxs

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
    • @pump_upp - best crypto pumps on telegram !
Re: Simple-Scada и Arduino
« Ответ #136 : 16 Октября 2018, 10:19:26 »
Поскольку разработчик убрал все ссылки из свободного доступа и требует проходить невнятный опрос с отправкой письма в ваш спам, выкладываю ссылку на 2.0 версию сервера:
http://st4makers.com/old/phocadownload/arduinoopcserver_2_0.zip
и копия на GDrive https://drive.google.com/file/d/179IYuK2Nm54PltdX2lxX-SrHqvCkFBDa

steam_engineer

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
Re: Simple-Scada и Arduino
« Ответ #137 : 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 данной темы - всё то же самое.

Прошу у Вас помощи в решении данной ситуации. Может я что-то упустил?
« Изменён: 10 Марта 2019, 18:10:38 от Simple-Scada »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 2998
    • Просмотр профиля
    • Simple-Scada
Re: Simple-Scada и Arduino
« Ответ #138 : 11 Марта 2019, 11:26:11 »
Здравствуйте.

Нужно устанавливать компоненты ОРС Core Components (x86), т.к. используемый Вами OPC-сервер является 32-битным. Перед установкой удалите 64-битную версию компонентов.

Цитировать
Во-первых, смущает то что в Simole Scada и в ItemProperty у сервера номер 2 в конце, а ни как у всех 1: "ArduinoOPCServer.2".
2 это номер версии OPC-сервера. Раньше все устанавливали первую версию.

Цитировать
Во-вторых, ItemProperty не видит адреса тегов, ровно как и Simple Scada:
Здесь всё зависит от OPC-сервера. Тег точно регистрируется в программе через "aOPCSerial.addItem("T1", opc_read, opc_float, item_temperature1);", но OPC-сервер по каким-то причинам не отдаёт его OPC-клиентам (скаде и ItemProperty).