Страница 10 из 117 ПерваяПервая ... 891011122060110 ... ПоследняяПоследняя
Показано с 91 по 100 из 1349

Тема: Hardella IDE

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Это же тоже через force write можно эмулировать?
    Или там какие-то особенности?
    Конкретно в кодесисе работает это не очень стабильно и вызвать можно только вручную.
    Кстати, чтобы "залить программу в модуль ввода-вывода и в ПЛК" нужно 2 разных CS проекта?
    Или достаточно одного и там plc conf?
    Программируется только ПЛК. Обмен с модулями — по поддерживаемым модулями протоколам. Делается либо через PLC Configuration, либо с портом напрямую через функции в SysLibCom — 50 / 50 в зависимости от разных тонкостей. Протокол у Овна чаще всего модбас, который поддерживается и в конфигураторе, и через распространённую modbus.lib (которая поверх SysLibCom). Модбас примитивен — практически набор функций чтения и записи адресного пространства подчинённых устройств.

    Заковырка — адреса входов/выходов модулей пишутся в руководствах, то есть из абстрактного проекта полный расклад модуля получить нельзя. Из PLC Configuration, впрочем, можно вытащить уже заданные программистом для конкретного проекта узлы. Так как использование существующих программ всё равно под вопросом из-за проекционного редактора, наверное, стоило бы рассмотреть аннотирование входных/выходных переменных на случай, когда обмен реализуется в обход конфигуратора (modbus.lib или вообще что-нибудь своё).

  2. #2

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    Конкретно в кодесисе работает это не очень стабильно и вызвать можно только вручную.
    Хоть что-то там работает?
    Я, если честно, думал о том, чтобы "force write" делать через программную интеграцию.
    https://en.wikipedia.org/wiki/Data_s...creen_scraping

    Т.е. подкидываем в CS "нажатия клавиш", чтобы оно думало, что мы "вручную" вызвали force write.

    Цитата Сообщение от Yegor Посмотреть сообщение
    то есть из абстрактного проекта полный расклад модуля получить нельзя
    Я так понимаю, полный расклад не очень-то и нужен. Ведь, тестируем то, что используется. А если какие-то выходы не используются, то чего их тестировать?
    Да, посмотрю что такое modbus.lib

  3. #3
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Т.е. подкидываем в CS "нажатия клавиш", чтобы оно думало, что мы "вручную" вызвали force write.
    Пункты меню можно попытаться без клавиатуры и мыши вызывать через WinAPI. Идентификаторы команд можно редактором ресурсов подсмотреть:

    res_ed.png

    Но я не совсем понимаю, как вы собираетесь предварительно эти переменные на экране находить, чтобы их «щёлкнуть» и подготовить к force write. Судя по википедии, искать распознаванием на экране? Чёт я очкую, Славик.

  4. #4

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    Пункты меню можно попытаться без клавиатуры и мыши вызывать через WinAPI. Идентификаторы команд можно редактором ресурсов подсмотреть:
    Эх, где, она, молодость? HWND и SendMessage...
    Да, разумеется SendMessage лучше чем эмуляция клавиатуры.

    Цитата Сообщение от Yegor Посмотреть сообщение
    Но я не совсем понимаю, как вы собираетесь предварительно эти переменные на экране находить, чтобы их «щёлкнуть» и подготовить к force write. Судя по википедии, искать распознаванием на экране? Чёт я очкую, Славик.
    Товарищи из CoDeSys заботливо сделали окно Online -> Write/Force dialog.
    Там "машиночитаемый" список всех переменных в виде таблицы переменная-значение.

    Правда, как добавить туда новую запись, конечно, вопрос.
    Возможно, через команду "watchlist load <file>" и там просто перечислить все возможные переменные.

    Либо ещё можно сделать специальную программу, которая нужна только для того, чтобы интеграция открыла её в нужный момент, и воспользовалась открытом окном для редактирования переменных (там раскладка известна заранее, т.к. спец-программу генерируем мы сами)

    К распознаванию на экране, конечно, не хотелось бы прибегать.
    Хотелось бы, конечно, остаться в рамках вызова каких-то API. Т.е. gettext, вызов команд по ID и т.п.

  5. #5
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Тот код с большой вероятностью окажется в теле программы, а не функционального блока. И тестировать его придётся вместе с остальной программой. Об этом я и говорил в #87 и #95. Другое дело, если бы эти две строки были сначала обобщены в функциональный блок, а уже потом встроены в программу — тогда можно было бы говорить о тестировании функционального блока. Но в ПЛК ради одного вызова не обобщают обычно.

  6. #6

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    Другое дело, если бы эти две строки были сначала обобщены в функциональный блок, а уже потом встроены в программу — тогда можно было бы говорить о тестировании функционального блока. Но в ПЛК ради одного вызова не обобщают обычно.
    Я вот пытаюсь так писать. Всё даже ничего,только лимит по количеству POU уже близок ))

  7. #7

    По умолчанию

    Цитата Сообщение от rapucha Посмотреть сообщение
    Я вот пытаюсь так писать. Всё даже ничего,только лимит по количеству POU уже близок ))
    А в чём этот предел заключается? Там прямо что-то осязаемое? Или как у классиков https://xkcd.com/844/?

  8. #8

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    А в чём этот предел заключается? Там прямо что-то осязаемое? Или как у классиков https://xkcd.com/844/?
    У ПЛК63/73 лимит на количество POU в программе -- 256. Причем 1) сюда включаются все импорты и 2) этого нет в РЭ и РП. Хотя по мне так серьезное ограничение, а главное ну нафигааааа...

  9. #9
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,576

    По умолчанию

    Цитата Сообщение от rapucha Посмотреть сообщение
    У ПЛК63/73 лимит на количество POU в программе -- 256. Причем 1) сюда включаются все импорты и 2) этого нет в РЭ и РП. Хотя по мне так серьезное ограничение, а главное ну нафигааааа...
    а это ограничение не конкретного устройства, а КДС, там и ищите описалово
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  10. #10
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Чем толще библиотеки, тем осязаемее. Ещё были сообщения о невидимых заборах в редакторах графических языков (что-то с прокруткой вроде). Но я ни с тем, ни с другим не сталкивался. И ещё есть контроллеры с буквой L, у которых по таргету стоят ограничения размеров сегментов памяти. Когда в них упираешься, компилятор начинает нечленораздельно бредить.

Страница 10 из 117 ПерваяПервая ... 891011122060110 ... ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •