Simple-Scada forum

Simple-Scada 2 => Ваши вопросы => Тема начата: Rinat от 19 Июля 2018, 06:17:23

Название: Подключение счетчика с импульсным выходом
Отправлено: Rinat от 19 Июля 2018, 06:17:23
Здравствуйте. Подскажите как реализовать работу счетчика с импульсным выходом (ВСТ-100), имеется модуль ввода МВ110-220-16Д от Овна. Спасибо.
Название: Re: Подключение счетчика с импульсным выходом
Отправлено: Simple_Scada от 19 Июля 2018, 23:06:19
Здравствуйте!

Судя по руководству на модуль МВ110-220-16Д (https://new.owen.ru/uploads/38/re_mv110-x.16d_dn__m01__2632.pdf?_ga=2.130806348.2133031590.1532004231-1705498436.1531810223) Вы можете подключить к нему счетчик ВСТ-100 и затем, например считывать кол-во импульсов посчитанных дискретным входом. Для вывода в скаду, можно пересчитывать кол-во импульсов в литры. К примеру, если на 1 импульс приходится 100 л., то можно создать скрипт с типом события "Изменились переменные (https://simple-scada.com/help/script/changed-the-variables.html)", добавить в него переменную счетчика импульсов(пример создания скрипта по изменению переменных можно найти здесь (https://simple-scada.com/help/script/changemulvar.html)) и написать скрипт:
Код: (delphi)
begin
  MyVar.Value := vrCount.Value * 100;
end.
, где vrCount - это переменная счетчика импульсов, MyVar - рассчетная переменная в литрах, которая будет использоваться в скаде.
Название: Re: Подключение счетчика с импульсным выходом
Отправлено: Rinat от 03 Августа 2018, 15:49:13
Сделал все как в примере. при изменении переменной ничего не происходит. но если переменную добавить в свойства поля то он начинает считать и при этом я ничего не изменяю в переменной.

Код: (delphi)
begin
 Field1.Value := Var1.Value +  100
end.
Название: Re: Подключение счетчика с импульсным выходом
Отправлено: TeNQ от 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.
В тесте роль входа контроллера играла кнопка.

Название: Re: Подключение счетчика с импульсным выходом
Отправлено: Rinat от 08 Августа 2018, 09:54:03
Спасибо за разъяснение, все получилось. Теперь подскажите пожалуйста как обнулять счетчик )))
Название: Re: Подключение счетчика с импульсным выходом
Отправлено: TeNQ от 08 Августа 2018, 11:11:25
Создаете кнопку. В ее свойствах выбираете тип - Без фиксации. Далее переходите на события. Выбираете событие OnClick (оно вызывается всякий раз, когда вы нажимаете на данную кнопку). И там прописываете сброс переменной vrCount
Код
begin
  vrCount.Value := 0;
end.
Для красоты можете зайти в свойствах кнопки в ее состояния и изменить в поле Текст надпись на кнопке Включить/Выключить на Сброс.
Название: Re: Подключение счетчика с импульсным выходом
Отправлено: Rinat от 08 Августа 2018, 13:23:37
Супер, только при нажатии сбрасывался счетчик но показания в скаде оставались до следующего изменения переменной. добавил в код строку
vrLiters.Value := 0;
и обнуление счетчика стало моментальным. спасибо.