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

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

Автор Тема: Подключение счетчика с импульсным выходом  (Прочитано 3990 раз)

Rinat

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Здравствуйте. Подскажите как реализовать работу счетчика с импульсным выходом (ВСТ-100), имеется модуль ввода МВ110-220-16Д от Овна. Спасибо.

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1365
    • Просмотр профиля
Здравствуйте!

Судя по руководству на модуль МВ110-220-16Д Вы можете подключить к нему счетчик ВСТ-100 и затем, например считывать кол-во импульсов посчитанных дискретным входом. Для вывода в скаду, можно пересчитывать кол-во импульсов в литры. К примеру, если на 1 импульс приходится 100 л., то можно создать скрипт с типом события "Изменились переменные", добавить в него переменную счетчика импульсов(пример создания скрипта по изменению переменных можно найти здесь) и написать скрипт:
Код: (delphi)
begin
  MyVar.Value := vrCount.Value * 100;
end.
, где vrCount - это переменная счетчика импульсов, MyVar - рассчетная переменная в литрах, которая будет использоваться в скаде.

Rinat

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Re: Подключение счетчика с импульсным выходом
« Ответ #2 : 03 Августа 2018, 15:49:13 »
Сделал все как в примере. при изменении переменной ничего не происходит. но если переменную добавить в свойства поля то он начинает считать и при этом я ничего не изменяю в переменной.

Код: (delphi)
begin
 Field1.Value := Var1.Value +  100
end.
« Изменён: 04 Августа 2018, 09:31:13 от Simple_Scada »

TeNQ

  • Постоялец
  • ***
  • Сообщений: 199
    • Просмотр профиля
Re: Подключение счетчика с импульсным выходом
« Ответ #3 : 04 Августа 2018, 00:20:34 »
Сделал все как в примере. при изменении переменной ничего не происходит. но если переменную добавить в свойства поля то он начинает считать и при этом я ничего не изменяю в переменной.

begin
 Field1.Value := Var1.Value +  100
end.

Вы создали замкнутый на себя бесконечный цикл. Первоначальный запуск происходит по изменению переменной Var1. Далее меняется значение Var1 на + 100, так как вы ее привязали к полю Field1. Поскольку значение Var1 изменилось, срабатывает скрипт по изменению Var1 и так до бесконечности.

Вам нужно создать в редакторе переменных три переменные.
Var1 - ваша переменная привязанная ко входу контроллера. Тип Boolean
vrCount - виртуальная переменная, которая будет содержать кол-во подсчитанных импульсов со счетчика
vrLiters - виртуальная переменная, которая будет преобразовывать кол-во подсчитанных импульсов в литры для отображения в поле.

Создаете поле и присваиваете ему переменную vrLiters.

И создаете 1 скрипт по изменению переменной для переменной Var1
Код
begin
  if var1.AsBool = true then
    vrCount.Value := vrCount.AsInt + 1;
  vrLiters. Value := vrCount.AsInt * 100;
end.
В тесте роль входа контроллера играла кнопка.


Rinat

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Re: Подключение счетчика с импульсным выходом
« Ответ #4 : 08 Августа 2018, 09:54:03 »
Спасибо за разъяснение, все получилось. Теперь подскажите пожалуйста как обнулять счетчик )))
« Изменён: 09 Августа 2018, 21:26:35 от Simple_Scada »

TeNQ

  • Постоялец
  • ***
  • Сообщений: 199
    • Просмотр профиля
Re: Подключение счетчика с импульсным выходом
« Ответ #5 : 08 Августа 2018, 11:11:25 »
Создаете кнопку. В ее свойствах выбираете тип - Без фиксации. Далее переходите на события. Выбираете событие OnClick (оно вызывается всякий раз, когда вы нажимаете на данную кнопку). И там прописываете сброс переменной vrCount
Код
begin
  vrCount.Value := 0;
end.
Для красоты можете зайти в свойствах кнопки в ее состояния и изменить в поле Текст надпись на кнопке Включить/Выключить на Сброс.

Rinat

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
Re: Подключение счетчика с импульсным выходом
« Ответ #6 : 08 Августа 2018, 13:23:37 »
Супер, только при нажатии сбрасывался счетчик но показания в скаде оставались до следующего изменения переменной. добавил в код строку
vrLiters.Value := 0;
и обнуление счетчика стало моментальным. спасибо.
« Изменён: 09 Августа 2018, 21:26:15 от Simple_Scada »