Стартовая страница › Форумы › Разработка и интеграция › Значение вх. канала по квитированию события
- В этой теме 4 ответа, 3 участника, последнее обновление 5 лет, 7 месяцев назад сделано
Mikhail.
-
АвторЗаписи
-
18.12.2020 в 13:20 #17861
vg
УчастникЗдравствуйте!
Собственно, если я правильно понимаю, для решения этой задачи нужно написать небольшой модуль.
Мне нужен метод OnEventChecked в классе ModTestLogic.
На сайте есть пример, в котором описано, что у класса ServerComm есть метод SendStandardCommand.
Написал ориентировочный код в модуле:
Log log = new Log(Log.Formats.Full); CommSettings settings = new CommSettings("localhost", 10000, "admin", "12345", 10000); ServerComm serverComm = new ServerComm(settings, log); bool result = true; serverComm.SendStandardCommand(11, 2121, 15, out result);Но он не работает 🙂
Разумеется создал в проекте канал управления с номером 2121, который по формуле SetVal(2121, CmdVal) устанавливает значение входного канала с таким же номером 2121 (который разумеется также создан и у которого используется формула Val()).
1) Что сделал неправильно?
2) Для чего нужен Log, если я его никуда не сохраняю, не прописываю никаких путей.
3) bool result не нужно сразу в true ставить?-
Тема изменена 5 лет, 7 месяцев назад пользователем
vg.
18.12.2020 в 14:02 #17863
manjey73УчастникПосмотрите в Модуле Автоуправления, свойства — Журнал
Вероятно туда и пишется ЛогА так, с модулями еще ни разу не программировал, не подскажу.
18.12.2020 в 17:03 #17864
MikhailМодераторДобрый день!
Т.к. речь идёт о модуле, который отправляет команду на сервер, на котором он сам же и работает, Вам не нужно использовать класс ServerComm. Используйте ServerCommands.SendCommand или ServerCommands.PassCommand. Ссылка
18.12.2020 в 17:27 #17865vg
УчастникMikhal, благодарю!
Собственно получился вот такой модуль для этой задачи:
public override void OnEventChecked(DateTime date, int evNum, int userID) { // the method executes after event check // метод выполняется после квитирования события Command command = new Command(); ServerCommands.SendCommand(2121, command, userID); WriteToLog("Process event check by the module " + Name, Log.ActTypes.Action); }Где 2121 — номер канала управления, который отрабатывает по квитированию события.
Таким образом по квитированию в журнале события можно, например, установить нужное значение во входном канале.
-
Ответ изменён 5 лет, 7 месяцев назад пользователем
vg.
20.12.2020 в 10:28 #17867
MikhailМодераторРад, что всё получилось. Как видите, разработать модуль даже проще, чем драйвер.
-
Тема изменена 5 лет, 7 месяцев назад пользователем
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.