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

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

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

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


Сообщения - SLR

Страницы: [1] 2
1
Ваши вопросы / Re: Simple-Scada и Arduino
« : 21 Марта 2016, 06:24:06 »
Опять 25, удалось победить температуру, прописав в скетче int вместо float, но теперь проблема с реле, сначала думал, что, что-то у меня в коде не так, хотя с ArduinoSerial все работает как надо, но потом попробовал залить стандартный пример из библиотеки,
вот часть кода :
Код: (c++)
bool callback(const char *itemID, const opcOperation opcOP, const bool value){
  static bool ledValue = false;
 
  /* if operation is a write command from OPC Client */
  if (opcOP == opc_opwrite) {
    ledValue = value;
   
    if (ledValue) 
      digitalWrite(ledPin, HIGH);
    else
      digitalWrite(ledPin, LOW);
  }
  else
    /* read the led status */
    return ledValue; 
}
Но при заливке светодиод всегда горит, хоть и чуть тусклее, при нажатие кнопки в скаде светодиод моргает. Видимо что-то не так в самой библиотеке, с ethernet'ом... Победить пока не удается...(

2
Ваши вопросы / Re: Simple-Scada и Arduino
« : 20 Марта 2016, 17:40:33 »
Получилось у меня запустить через Езернет, но есть одно НО... мб кто-то подскажет, получаю вот такую штуку в opc server
Цитировать
20.03.2016 21:34:25 > Asking for available OPCItems from ArduinoEthernet0
20.03.2016 21:34:26 > Frame: [{"ItemId":"Temperature","AccessRight":"0","ItemType":"3"},{"ItemId":"Humidity","AccessRight":"0","ItemType":"3"},{"ItemId":"RELE01","AccessRight":"2","ItemType":"0"},{"ItemId":"RELE02","AccessRight":"2","ItemType":"0"},{"ItemId":"RELE03","AccessRight":"2","ItemType":"0"},{"ItemId":"RELE04","AccessRight":"2","ItemType":"0"},{"ItemId":"RELE05","AccessRight":"2","ItemType":"0"},
Хотя если делать тоже самое но с ArduinoSerial все нормально получается тип данных определяется коректно и графические шкалы работают, через езернет любой канал определяется стрингом и графические шкалы не работают, код в ардуинке не меняется... мб нужно как то в ручную указывать тип данных в случае с aOPCEthernet ?

3
Ваши вопросы / Re: Simple-Scada и Arduino
« : 31 Января 2016, 15:10:48 »
Я хочу просто включать, выключать светодиод, на цифровом порту, НЕ ШИМ. В вашем примере вы регистрируете пины
Код: (c++)
// Цифровые
int D0 = 0;
int D1 = 1;
int D2 = 2;
int D4 = 4;
int D7 = 7;
int D8 = 8;
int D12 = 12;
Дальше по коду вы описываете, как управлять ШИМ портом и читать данные с Аналоговых портов. Но про пины 0,1,2,...12. дальше по коду ничего нету.
Т.Е фактически надо давать со скады одну команду, а в ардуино инвертировать значение пина  LED = !LED.

4
Ваши вопросы / Re: Simple-Scada и Arduino
« : 31 Января 2016, 12:53:24 »
Неужели никто не подскажет? В примере админа регистрируются цифровые пины, но примера работы с ними нет(((

5
Ваши вопросы / Re: Simple-Scada и Arduino
« : 29 Января 2016, 08:52:29 »
Тестрировал все на Уно,  не думаю , что с другими будет проблемы. Попутно извиняюсь за свою назойливость , но не подскажите как работать с цифровым портом, не шим. Пробовал как в примерах вышел светодиод только гаснет , пробовал передавать led !led т.е менять состояние , но что-то отказывается работать ....

6
Ваши вопросы / Re: Simple-Scada и Arduino
« : 28 Января 2016, 16:57:47 »
Вроде победил, потещу отпишусь, НО решение нашлось только для дтх11, сначала пробовал считывать температуру без библиотеки, но получились полные костыли, нашел самую простенькую библиотеку именно для ДТХ11, самому мне не по силам разобраться с библиотекой DHT (проблема в задержках), мб найдутся люди которые смогут поправить косяк.
Код: (c++)
#include <OPC.h>
#include <Bridge.h>
#include <Ethernet.h>
#include <SPI.h>
#include <dht11.h>
dht11 DHT;               // Объявление переменной класса dht11
#define DHT11_PIN 2
OPCSerial aOPCSerial;


float TempItem(const char *itemID, const opcOperation opcOP, const float value){
  DHT.read(DHT11_PIN);
   return(DHT.temperature);
}
float HumItem(const char *itemID, const opcOperation opcOP, const float value){
  DHT.read(DHT11_PIN);
   return(DHT.humidity);
}

void setup()
{
  Serial.begin(9600);
 

  aOPCSerial.setup();
  aOPCSerial.addItem("Temperature", opc_read, opc_float, TempItem);
  aOPCSerial.addItem("Humidity", opc_read, opc_float, HumItem);
}

void loop()
{

  aOPCSerial.processOPCCommands();
}
Вот мой код, мб кому то пригодится, если нужно скину библиотеку.

7
Ваши вопросы / Re: Simple-Scada и Arduino
« : 28 Января 2016, 13:42:55 »
попробовал, безрезультатно.

8
Ваши вопросы / Re: Simple-Scada и Arduino
« : 27 Января 2016, 19:48:07 »
Да, 10 кОм, такое ощущение , что ответ где то близко, последний скетч, который выложил администратор дал некоторые результаты, но до конца победить не удаётся. ...

9
Ваши вопросы / Re: Simple-Scada и Arduino
« : 27 Января 2016, 19:22:34 »
ничего не получается.... я так понимаю у вас с вашим кодом все прекрасно работает?
Вот именно этот код я заливаю: (единственное изменение это тип датчика...)
Код: (c++)
#include <OPC.h>
#include <Bridge.h>
#include <Ethernet.h>
#include <SPI.h>
#include "DHT.h"

OPCSerial aOPCSerial;

#define DHTPIN 2
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

float D2_t = -1;
float D2_h = -1;

float D2_TItem(const char *itemID, const opcOperation opcOP, const float value){
  noInterrupts();
  float t = dht.readTemperature();
  interrupts();
  if (isnan(t)) {
    return D2_t;
  } else
    {
      D2_t = t;
      return t;
    }
}

float D2_HItem(const char *itemID, const opcOperation opcOP, const float value){
  noInterrupts();
  float h = dht.readHumidity();
  interrupts();
  if (isnan(h)) {
    return D2_h;
  } else
    {
      D2_h = h;
      return h;
    }
}

void setup()
{
  Serial.begin(9600);
  dht.begin();

  aOPCSerial.setup();

  aOPCSerial.addItem("D2_t", opc_read, opc_float, D2_TItem);
  aOPCSerial.addItem("D2_h", opc_read, opc_float, D2_HItem);
}

void loop()
{

  aOPCSerial.processOPCCommands();
}

10
Ваши вопросы / Re: Simple-Scada и Arduino
« : 27 Января 2016, 18:25:37 »
да тут и нечего думать плохо, по запаре можно и ошибиться в простом:) , но к сожалению это не тот случай, единственная разница у меня дтх11, а подключен так же к 2 пину. уже не знаю что и делать......

11
Ваши вопросы / Re: Simple-Scada и Arduino
« : 27 Января 2016, 18:13:07 »
Ваш код пробовал неоднократно, значения вообще не читает, скомпилировал в 1.6.5. вот лог с опс
e: 2D312E3030
27.01.2016 22:11:12 > Client asks for: D2_t
27.01.2016 22:11:12 > Received D2_t value OK. Returned frame:-1.00 length:5 Frame: 2D312E3030
27.01.2016 22:11:12 > Client asks for: D2_h
27.01.2016 22:11:12 > Received D2_h value OK. Returned frame:-1.00 length:5 Frame: 2D312E3030

12
Ваши вопросы / Re: Simple-Scada и Arduino
« : 27 Января 2016, 16:34:58 »
среда 1.7.7 , но думаю роли это не играет, сдвинулось с места, сейчас при запуске не моргает температура меняется в зависимости от нагрева/остывания, но периодически опять начинает меняться и через некоторое время температура снова опускается/поднимается и так по кругу.
С noInterrupts(); отказывается вообще считывать показания.

13
Ваши вопросы / Re: Simple-Scada и Arduino
« : 27 Января 2016, 16:19:30 »
Без изменений, с делеем все понятно, если ставить задержку в  скетче то получается нулевое значение как раз на время задержки.

14
Ваши вопросы / Re: Simple-Scada и Arduino
« : 27 Января 2016, 16:04:20 »
ругается на
if ((isnan(t)) || (t < 1)) {
    return TempBuffer;
  } else
    // Если температура была успешно считана
    {
      TempBuffer = t;
      return t;
    }
пробовал вынести в отдельную функцию, не помогло не могу понять, что ему надо...
sketch_jan27b.ino:35:12: error: return-statement with a value, in function returning 'void' [-fpermissive]
sketch_jan27b.ino:40:14: error: return-statement with a value, in function returning 'void' [-fpermissive]

15
Ваши вопросы / Re: Simple-Scada и Arduino
« : 27 Января 2016, 15:46:52 »
Ваш код не компилируется(

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