Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 20

Тема: CmpSysExec

  1. #1

    По умолчанию CmpSysExec

    Здравствуйте!

    Проблема в библиотеке CmpSysExec. При вызове любого ФБ из ее состава возвращает код ошибки - 1. Где взять расшифровку кодов ошибок?

    Причем раньше все работало и вдруг перестало.

    код такого плана:

    Объявление:
    fbCmpSysExec: CmpSysExec.sysExecute3;

    Выполнение:
    fbCmpSysExec(xExecute := TRUE, sCommand := 'ls');

  2. #2
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,147

    По умолчанию

    Цитата Сообщение от 6385428 Посмотреть сообщение
    Здравствуйте!

    Проблема в библиотеке CmpSysExec. При вызове любого ФБ из ее состава возвращает код ошибки - 1. Где взять расшифровку кодов ошибок?

    Причем раньше все работало и вдруг перестало.

    код такого плана:

    Объявление:
    fbCmpSysExec: CmpSysExec.sysExecute3;

    Выполнение:
    fbCmpSysExec(xExecute := TRUE, sCommand := 'ls');
    Добрый день.

    Этот код возвращается, если превышено допустимое число одновременно вызываемых экземпляров блоков библиотеки (9).
    Т.е., например, если у вас в проекте 4 экземпляра sysExecute3 и 5 экземпляров sysExecute4, и в конкретный момент времени все они вызваны с xExecute := TRUE - то при попытке вызова 10-го экземпляра вернется ошибка с кодом 1.

  3. #3

    По умолчанию

    Спасибо за оперативный ответ!

    Экземпляр точно 1, перепроверил много раз. Но код загружался на ПЛК множество раз через полную загрузку и ПЛК не перезагружался. Внутренний счетчик экземпляров библиотеки находится в области памяти не затрагиваемой при обновлении кола проекта?

  4. #4
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,147

    По умолчанию

    Цитата Сообщение от 6385428 Посмотреть сообщение
    Спасибо за оперативный ответ!

    Экземпляр точно 1, перепроверил много раз. Но код загружался на ПЛК множество раз через полную загрузку и ПЛК не перезагружался. Внутренний счетчик экземпляров библиотеки находится в области памяти не затрагиваемой при обновлении кола проекта?
    Вообще, если код загружался через полную загрузку (а не через онлайн-изменение) - то все должно работать корректно.
    У нас когда-то были проблемы, похожие на ту, которую описываете вы - их поправили в прошивке 1.3.0812.1315.

  5. #5

    По умолчанию

    Перепроверил - действительно при полной загрузке счетчик не сбрасывается. При перезагрузке вызов начинает работать. Если потом упустить количество даже не экземпляров блоков, а вызовы одного и того экземпляра с разными параметрами, не сбросив его в промежутках в false - перестает работать. И только перезагрузка помогает

  6. #6

    По умолчанию

    Здравствуйте, а как организовать циклический доступ, например к БД каждые 10 секунд, с помощью CmpSysExec?

  7. #7
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,147

    По умолчанию

    Цитата Сообщение от Zagagulkin Посмотреть сообщение
    Здравствуйте, а как организовать циклический доступ, например к БД каждые 10 секунд, с помощью CmpSysExec?
    Для этого потребуется циклически вызывать экземпляр ФБ из библиотеки CmpSysExec - например, по таймеру.

  8. #8

    По умолчанию

    Спасибо, за оперативный ответ!

  9. #9

    По умолчанию

    timer(ENABLE := TRUE, TIMELOW := T#10S, TIMEHIGH := T#1MS);

    IF timer.OUT THEN

    arIntErrorTable[i] := INSERT_TO_DB(xEnable := TRUE, tableName := arLINES_COUNTERS[1][i], counterStr := arLINES_COUNTERS[2][i], atSpeed := 1);

    IF arIntErrorTable[i] = 1 THEN
    answerStr := arLINES_COUNTERS[1][i];
    END_IF

    i := i + 1;

    IF i > 7 THEN
    i := 1;
    END_IF
    END_IF

    Вот такой код как-то странно работает, при первом проходе от 1 до 7, данные записываются в БД SQlite3 функцией INSERT_TO_DB(обертка над SysExec3), а при последующих возвращает код ошибки 1.

  10. #10

Страница 1 из 2 12 ПоследняяПоследняя

Ваши права

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