Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 20 из 21

Тема: мистическая комбинация в ПЛК150

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

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

    По умолчанию

    Нет под рукой ПЛК150. И не предвидится.
    А не проще ли программно ограничить переменную индекса массива, и при выходе её за пределы вывешивать флаг ошибки, как пример.
    Код:
    IF iCount<=5 AND iCount=>1 THEN bIndexOk:=TRUE; 
    ELSE bIndexOk:=FALSE;
    END_IF;
    
    
    
    IF bIndexOk THEN
    aBuffer[iCount]:=xW;
    ELSE (*свистать всех наверх, приготовиться к торпедной атаке!*)
    END_IF;
    ---
    -Доктор, когда я вот так делаю, мне больно.
    -Дык не делайте так.
    Последний раз редактировалось Sulfur; 15.04.2021 в 09:11.

  2. #2
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,799

    По умолчанию

    Тогда уж проще iCount ограничивать принудительно
    if iCount<1 then
    iCount:=1;
    elsif iCount>5 then
    iCount:=5;
    end_if;

    Просто не все так законтролировать можно, напр. тот же фокус с делением на 0, все используют какие-то бибки, где гарантия, что там внутри никогда в знаменателе "0" не появится.

  3. #3
    Пользователь
    Регистрация
    31.07.2013
    Адрес
    Аркаим
    Сообщений
    1,353

    По умолчанию

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

  4. #4
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,799

    По умолчанию

    Цитата Сообщение от Sulfur Посмотреть сообщение
    Принудительно ограничение тоже имеет место быть. Но зависит от задачи. Если в проекте индекс получается по результатам вычислений или состоянию входов\переменных, то мой метод предпочтительнее.
    Ага, каждому его метод предпочтительнее, см. притчу о лисе и журавле.

    У вас предусмотрено (млин вот все как у Овена, вы часом не у них на курсах учились) какое-то не понятное поведение системы - если bIndexOk=False что тогда? Что в массиве?

  5. #5

    По умолчанию

    Цитата Сообщение от Sergey666 Посмотреть сообщение
    Ага, каждому его метод предпочтительнее, см. притчу о лисе и журавле.

    У вас предусмотрено (млин вот все как у Овена, вы часом не у них на курсах учились) какое-то не понятное поведение системы - если bIndexOk=False что тогда? Что в массиве?
    А почему Вы считаете, что всегда, когда индекс массива выходит за допустимый диапазон, должны изменяться крайние элементы?

  6. #6
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,799

    По умолчанию

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

  7. #7

    По умолчанию

    Зачем было так тратиться на лишние слова и эмоции, после которых ничего не стало яснее.

    Цитата Сообщение от Валенок Посмотреть сообщение
    А причем тут ПЛК150 ? У вас массив 1..5 а пишете хрен знает куда, и хрень будет в любом языке на любом плк, пк, и прочем утюге.
    Вопрос был почему так выходит только при такой комбинации когда массив из пяти, пишется значение в шестой и возникает неправильное значение в булевской переменной, которая не относится к этому массиву. Если писать в седьмой или любой другой, которого тоже нет, то ошибки не возникает. Ошибка если только в шестой.

    Цитата Сообщение от Валенок Посмотреть сообщение
    Уверены ? Залейте поллитру в стакан и подумайте - причем тут пол который вообще не трогают.
    Если бы я в чем то был уверен, то вопросы бы не задавал, а искал бы по форумам на кого бы вызвериться. Если хотите помочь понять, то лучше как то пояснее, без поллитра, а побольше конкретики.

    Цитата Сообщение от Валенок Посмотреть сообщение
    Да что вы, а не досуг было hex в dec перевести, сравнить с чем нить и немного подумать ?
    То что значение переменной wX попадает в xInit это сразу было понятно. Непонятно почему оно туда попадает только когда массив из 5 элементов и значение пишется в шестой. Если сделать массив из 4 элементов, и писать в пятый или в любой другой, то ошибка не появляется. В этом и мистика для меня лично.
    Последний раз редактировалось Ian; 14.04.2021 в 23:13.

  8. #8
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,799

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    А причем тут ПЛК150 ? У вас массив 1..5 а пишете хрен знает куда, и хрень будет в любом языке на любом плк, пк, и прочем утюге.
    Вообще-то любой нормальный ПЛК при таких инцестах в стоп вываливается...даже ПЛК на КДС 2.3 от другого Российского производителя, а то что позволяет наливать поллитру в стакан и на пол это может быть хорошо где-то на уровне учебных стендов, а ПЛК для промышленности (любой) должен давать подзатыльник за попытки переливов.
    Тут разница в подходе производителя, один взял "как есть" и тру-ля-ля, а другой допилил ту-же КДС под свое понимание жизни.
    Последний раз редактировалось Sergey666; 15.04.2021 в 08:34.

  9. #9
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,799

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    1. Не "нормальный" ПЛК а ПЛК для домохозяек и начинающих.
    2. На кой лично мне потеря времени на онлайн проверку индексов на уровне системы ? Я в себе уверен и сторонник отсутствия какого-либо контроля своих данных. Читаем что-нить про индексы, например, в сях. Тех кому нужно обязательно сообщить что "горячий кофе на себя лить нельзя" - не читать.
    3. Для не ведающих что творят собственные руки этот Российского производитель оставил воможность сделать что хошь - см. хэлп про CheckBounds. Хошь перезагрузка, хошь стоп, хошь - звонок Путину с жалобой на Овен.


    Такие "понимающие жизнь" у дочки в школе запретили ПАЛКИ для лыж. В натуре. Оне ведь понимают - дети сразу будут палками глаз тыкать. Думаю что обучение плаванию такие "понимающие жизнь" проводят на беговой дорожке.

    Мне лично не уперся ПЛК обложенный контролем со все сторон. В данном конкретном примере эту особенность я регулярно использую.
    В себе уверен я, не дрогну ни на миг...
    Не все-ж такие россомахи программирования и нюансы разные бывают, а техногенные аварии не дремлют, только натянул указатель не туда, так и...
    Последний раз редактировалось Sergey666; 15.04.2021 в 13:22.

Страница 2 из 2 ПерваяПервая 12

Похожие темы

  1. ПЛК150 + ПЧВ
    от NikeTM в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 23.09.2014, 03:00
  2. ПЛК150
    от Денис_NTS в разделе Эксплуатация
    Ответов: 3
    Последнее сообщение: 30.07.2013, 19:35
  3. ПЛК150!
    от Broka в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 27.11.2011, 19:21
  4. ПЛК150 и ТХК(L)
    от exbit в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 06.01.2011, 15:28
  5. ПЛК150+ПКП 1Т
    от Руслан2 в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 11.03.2008, 14:15

Ваши права

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