PDA

Просмотр полной версии : ПЛК 200 Master + СП310 Slave



ivan.v
28.03.2023, 01:35
Здравствуйте. Помогите разобраться. Не судите строго делаю первые шаги в программе Codesys 3.5 и не могу разобраться как вывести обычную кнопку включения с панели в режиме slave на плк 200 в режиме master. Что я делаю не так? Файл "пр" был создан для ПР 103, разбираюсь как теперь это запустить на ПЛК200.

Евгений Кислов
28.03.2023, 06:33
Добрый день.
Вы зря настроили оба интерфейса ПЛК на одну подсеть - это не будет корректно работать.
Перенастройте один из них в другую подсеть.

ivan.v
28.03.2023, 07:17
Добрый день.
Вы зря настроили оба интерфейса ПЛК на одну подсеть - это не будет корректно работать.
Перенастройте один из них в другую подсеть.

Причина только в этом? Может я не правильно применяю регистр или соотнесение входов. Ещё заметил что в состоянии modbus tsp написан статус не запущено.

Евгений Кислов
28.03.2023, 07:29
Причина только в этом? Может я не правильно применяю регистр или соотнесение входов. Ещё заметил что в состоянии modbus tsp написан статус не запущено.

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

ivan.v
28.03.2023, 10:07
Навскидку - других проблем я не вижу, код функции и адрес бита указаны корректно.
Если озвученный совет не поможет, то предоставьте доступ по AeroAdmin - разберемся, что у вас происходит.

Спасибо огромное !!!

ivan.v
28.03.2023, 10:11
Навскидку - других проблем я не вижу, код функции и адрес бита указаны корректно.
Если озвученный совет не поможет, то предоставьте доступ по AeroAdmin - разберемся, что у вас происходит.

можете подсказать в чем разница этих вкладок, и там и там можно ввести переменную с modbus TCP.

Евгений Кислов
28.03.2023, 10:16
На вкладке Modbus Slave Init можно добавить только запросы на запись, которые автоматически будут однократно отправлены при старте обмена со слэйвом.

ivan.v
28.03.2023, 10:18
На вкладке Modbus Slave Init можно добавить только запросы на запись, которые автоматически будут однократно отправлены при старте обмена со слэйвом.

Понял спасибо.

ivan.v
28.03.2023, 20:54
Навскидку - других проблем я не вижу, код функции и адрес бита указаны корректно.
Если озвученный совет не поможет, то предоставьте доступ по AeroAdmin - разберемся, что у вас происходит.

Получилось!!! Сделал разные подсети и все заработало, спасибо огромное за помощь!!! Можете еще дать совет по визуализации. Как лучше ее создавать с помощью Codesys, или в той среде, что для этой панели создана-конфигуратор сп300?

Евгений Кислов
28.03.2023, 21:07
Получилось!!! Сделал разные подсети и все заработало, спасибо огромное за помощь!!! Можете еще дать совет по визуализации. Как лучше ее создавать с помощью Codesys, или в той среде, что для этой панели создана-конфигуратор сп300?

Визуализацию для панели можно создать только в Конфигуратор СП300.
Отобразить на этой панели визуализацию, созданную в CODESYS, не получится.

ivan.v
28.03.2023, 21:32
Визуализацию для панели можно создать только в Конфигуратор СП300.
Отобразить на этой панели визуализацию, созданную в CODESYS, не получится.
По учебным видео видел что визуализацию создают так, это не правильно? Извините конечно что засыпаю вопросами. ПР 103 может работать в slave tsp? Правильно понимаю, что нужно с помощью этого регистра 4108 опрашивать вход №1

Евгений Кислов
28.03.2023, 21:36
Это визуализация, которую вы сможете увидеть в web-браузере при подключении к ПЛК.
Отобразить ее на экране СП310 у вас не получится.

ivan.v
28.03.2023, 21:45
Это визуализация, которую вы сможете увидеть в web-браузере при подключении к ПЛК.
Отобразить ее на экране СП310 у вас не получится.

Спасибо с этим теперь понятно.

ivan.v
28.03.2023, 21:47
По учебным видео видел что визуализацию создают так, это не правильно? Извините конечно что засыпаю вопросами. ПР 103 может работать в slave tsp? Правильно понимаю, что нужно с помощью этого регистра 4108 опрашивать вход №1

Или ПР может только по Modbus rtu в slave работать?

keysansa
28.03.2023, 21:57
Или ПР может только по Modbus rtu в slave работать?

Данная визуализация создается на графических панелях. Не на вашей.
ПР может выступать как мастером, так и слейвом. Как настроите. Но перед настройкой подумайте. Мастер может быть только 1. Слейвов - много.

ivan.v
28.03.2023, 22:07
Данная визуализация создается на графических панелях. Не на вашей.
ПР может выступать как мастером, так и слейвом. Как настроите. Но перед настройкой подумайте. Мастер может быть только 1. Слейвов - много.

Разобрался нужно создавать переменную свою для slave. Спасибо огромное за помощь.

keysansa
28.03.2023, 22:44
Разобрался нужно создавать переменную свою для slave. Спасибо огромное за помощь.

Если у ПР 2 порта - рекомендую, на одном порту выступать мастером, на втором - слейвом. Если только один порт - выберите, как вам лучше.

ivan.v
28.03.2023, 23:35
Если у ПР 2 порта - рекомендую, на одном порту выступать мастером, на втором - слейвом. Если только один порт - выберите, как вам лучше.

А если нет потребности в двух режимах? Он мне нужен как слейв пока. За совет спасибо !!!

ivan.v
29.03.2023, 23:36
Это визуализация, которую вы сможете увидеть в web-браузере при подключении к ПЛК.
Отобразить ее на экране СП310 у вас не получится.


Евгений здравствуйте. Можете пожалуйста помочь разобраться с выводом аналогового сигнала с ПР 103 на панель СП310. Что я сделал не правильно тип переменной указал вроде правильно, но значения не доходят. Смысл прочитать значения и записать в панель.

Евгений Кислов
30.03.2023, 06:19
Добрый день.
У вас ПР опрашивает СП310?
Тогда выложите проекты для ПР и СП, пожалуйста.
Почему вы решили приложить скриншоты из CODESYS?

ivan.v
30.03.2023, 11:45
Добрый день.
У вас ПР опрашивает СП310?
Тогда выложите проекты для ПР и СП, пожалуйста.
Почему вы решили приложить скриншоты из CODESYS?

Выложу проект конечно чуть позже, подумал что для Вас так проще будет. Так преобразовать получится? Или же тип переменной читаемой и записываемой должен быть DWORD, вместо REAl?

Евгений Кислов
30.03.2023, 12:18
Выложу проект конечно чуть позже, подумал что для Вас так проще будет. Так преобразовать получится? Или же тип переменной читаемой и записываемой должен быть DWORD, вместо REAl?

При выполнении кода на скриншоте значение temp_in будет преобразовано в temp_out с округлением до целых.
Извините, но я все равно пока что не понял, как у вас связаны ПЛК с CODESYS, ПР и СП и в чем именно сейчас ваш вопрос.

ivan.v
30.03.2023, 12:35
При выполнении кода на скриншоте значение temp_in будет преобразовано в temp_out с округлением до целых.
Извините, но я все равно пока что не понял, как у вас связаны ПЛК с CODESYS, ПР и СП и в чем именно сейчас ваш вопрос.

Хорошо понял. Позже скину проект.

ivan.v
30.03.2023, 19:04
При выполнении кода на скриншоте значение temp_in будет преобразовано в temp_out с округлением до целых.
Извините, но я все равно пока что не понял, как у вас связаны ПЛК с CODESYS, ПР и СП и в чем именно сейчас ваш вопрос.

Получилось считать только по типу WORD, но вот разобраться с передачей DWORD не могу понять как объединить, так как я понимаю только этим типом можно считать и передать значение с плавающей точкой.

Евгений Кислов
30.03.2023, 19:11
С какого устройства и на какое вы хотите передать DWORD?
В каких конкретно местах проектов я смогу этот DWORD увидеть?

ivan.v
30.03.2023, 19:18
С какого устройства и на какое вы хотите передать DWORD?
В каких конкретно местах проектов я смогу этот DWORD увидеть?
В данный момент там сейчас Word, так как я вчера, то что делал не сохранил. Cейчас попробую еще раз применить Dword. С этого файла ПЛК 200 +ПР 103 + СП310 для ПР 103 в ПЛК 200 +ПР 103 + СП310 для ПЛК 200.

ivan.v
30.03.2023, 20:13
В данный момент там сейчас Word, так как я вчера, то что делал не сохранил. Cейчас попробую еще раз применить Dword. С этого файла ПЛК 200 +ПР 103 + СП310 для ПР 103 в ПЛК 200 +ПР 103 + СП310 для ПЛК 200.
Вот на этом я вчера и завис. Подскажите пожалуйста где я совершаю ошибку?

kondor3000
30.03.2023, 21:51
Вот на этом я вчера и завис. Подскажите пожалуйста где я совершаю ошибку?

Ерундой не занимайтесь, температура у вас тип REAL (формат Float), её и передавайте
И REAL и DWORD можно объединить с помощью UNION из двух ваших WORD, см скрин 66899
Добавляете DUT, выбираете Объединение и вписываете ваши переменные. В панели она как DWORD, формат Float, а в ПР Float.
При неправильном отображении, так же переставляете местами регистры, WORD-ы.

ivan.v
30.03.2023, 22:48
Ерундой не занимайтесь, температура у вас тип REAL (формат Float), её и передавайте
И REAL и DWORD можно объединить с помощью UNION из двух ваших WORD, см скрин 66899
Добавляете DUT, выбираете Объединение и вписываете ваши переменные. В панели она как DWORD, формат Float, а в ПР Float.
При неправильном отображении, так же переставляете местами регистры, WORD-ы.
Местами менять где подскажите, В DUT? На втором скрине длинна регистра 2 ?

kondor3000
30.03.2023, 23:06
Местами менять где подскажите, В DUT? На втором скрине длинна регистра 2 ?

Менять местами WORD можно с помощью функции, например 66905


FUNCTION Swap_W : REAL // Функция перестановки WORD в переменной REAL
VAR_INPUT
rIn:REAL; //входная переменная типа REAL
END_VAR
VAR
pInput : POINTER TO ARRAY[0..1] OF WORD; // Указатель на масссив
pOutput : POINTER TO ARRAY[0..1] OF WORD;
rOut:REAL; // переменная rIn с переставленными местами WORDами
END_VAR
_______________________________________________
pInput :=ADR(rIn); // Адрес входной переменной
pOutput := ADR(Swap_W); // Адрес выходной переменной

pOutput^[ 0 ] := pInput^[ 1 ];
pOutput^[ 1 ] := pInput^[ 0 ];
Может вам ещё и не придётся переставлять)

ivan.v
30.03.2023, 23:20
Менять местами WORD можно с помощью функции, например 66905


FUNCTION Swap_W : REAL // Функция перестановки WORD в переменной REAL
VAR_INPUT
rIn:REAL; //входная переменная типа REAL
END_VAR
VAR
pInput : POINTER TO ARRAY[0..1] OF WORD; // Указатель на масссив
pOutput : POINTER TO ARRAY[0..1] OF WORD;
rOut:REAL; // переменная rIn с переставленными местами WORDами
END_VAR
_______________________________________________
pInput :=ADR(rIn); // Адрес входной переменной
pOutput := ADR(Swap_W); // Адрес выходной переменной

pOutput^[ 0 ] := pInput^[ 1 ];
pOutput^[ 1 ] := pInput^[ 0 ];
Может вам ещё и не придётся переставлять)
да мне кажется нужно переставить. потому что значения прыгают как счетчик, идет перечисление значений. код пишется там же где и DUT?

kondor3000
30.03.2023, 23:31
да мне кажется нужно переставить. потому что значения прыгают как счетчик, идет перечисление значений. код пишется там же где и DUT?

Добавить POU, выбираете функцию, вписываете имя Swap_W и выход REAL, язык ST, код просто копируете в русской раскладке, пояснения будут на русском. Скрин добавил в предыдущем сообщении.
Смотреть вам надо чтобы в ПР было правильно и в Панели, 2 переворота, в итоге должно быть правильно.

ivan.v
30.03.2023, 23:48
Добавить POU, выбираете функцию, вписываете имя Swap_W и выход REAL, язык ST, код просто копируете в русской раскладке, пояснения будут на русском. Скрин добавил в предыдущем сообщении.
Смотреть вам надо чтобы в ПР было правильно и в Панели, 2 переворота, в итоге должно быть правильно.

чем дальше в лес тем больше дров. думал будет проще, но нет;) Это нормально что тут все красным выделено?

kondor3000
30.03.2023, 23:52
чем дальше в лес тем больше дров. думал будет проще, но нет;) Это нормально что тут все красным выделено?

А черту, для чего я нарисовал? Саму черту не надо, а всё что ниже в нижнее окно. И вторая строка у вас 2 раза, вы совсем дремучий, удалите повтор на второй строке.
Верхее окно для объявлений, нижнее окно для кода )))))
У вас всё должно быть как у меня в коде, лишние VAR тоже удалите.

ivan.v
31.03.2023, 00:21
А черту, для чего я нарисовал? Саму черту не надо, а всё что ниже в нижнее окно. И вторая строка у вас 2 раза, вы совсем дремучий, удалите повтор на второй строке.
Верхее окно для объявлений, нижнее окно для кода )))))
У вас всё должно быть как у меня в коде, лишние VAR тоже удалите.
:) Конечно "дремучий" я первый раз сталкиваюсь с такими преобразованиями тем более на языке ST. В это раз я что не так сделал?

kondor3000
31.03.2023, 00:24
:) Конечно "дремучий" я первый раз сталкиваюсь с такими преобразованиями тем более на языке ST. В это раз я что не так сделал?

Вы имя функции не задали, у вас POU в названии.
Сделайте правой кнопкой по функции Рефакторинг/ Поменять имя и впишите правильно имя. Сама функция теперь правильно, только 1 и 0 переставлены.

ivan.v
31.03.2023, 00:40
Вы имя функции не задали, у вас POU в названии и 1 и 0 переставлена.
Сделайте правой кнопкой по функции Рефакторинг/ Поменять имя и впишите правильно имя. Сама функция теперь правильно.
Прогресс есть:), но вот результат пока бегающие цифры. 1 и 0 менял на фото вариант после замены

kondor3000
31.03.2023, 00:43
Прогресс есть:), но вот результат пока бегающие цифры.

Зачем вы функцию выложили, в ней ничего увидеть нельзя, функция не имеет памяти и смотреть надо вход и выход в самой программе.
0 и 1 вы специально переставили? Сейчас перестановки у вас нет.

Выкладывать надо то, где у вас цифры бегают, 4 раза написали, а скрина ни разу не выложили.

ivan.v
31.03.2023, 00:46
Зачем вы функцию выложили, в ней ничего увидеть нельзя, функция не имеет памяти и смотреть надо вход и выход в самой программе.
0 и 1 вы специально переставили? Сейчас перестановки у вас нет.
С перестановкой так же обстоят дела.

ivan.v
31.03.2023, 00:49
Зачем вы функцию выложили, в ней ничего увидеть нельзя, функция не имеет памяти и смотреть надо вход и выход в самой программе.
0 и 1 вы специально переставили? Сейчас перестановки у вас нет.

Может смысла вообще нету в SwapW? Сейчас без него что получил то передал.

ivan.v
31.03.2023, 00:54
Может смысла вообще нету в SwapW? Сейчас без него что получил то передал.

Как мне Вас отблагодарить. Потратили столько времени с Swap_w, а дело было в настройке панели стоял тип данных unsigned, поставил Float и значения стали корректными. Спасибо Вам Огромное!!!!
Правильно понимаю DUT нужно применять к каждой переменной в проекте, или достаточно один раз указать там переменные которые объединяем?

kondor3000
31.03.2023, 01:01
Как мне Вас отблагодарить. Потратили столько времени с Swap_w, а дело было в настройке панели стоял тип данных unsigned, поставил Float и значения стали корректными. Спасибо Вам Огромное!!!!
Правильно понимаю DUT нужно применять к каждой переменной в проекте, или достаточно один раз указать там переменные которые объединяем?

Объединение нужно, если вы объединяете, REAL, DWORD ( 32 битные переменные), состоящие из 2 регистров, другие туда вписывать не надо.

ivan.v
31.03.2023, 01:01
Теперь буду знать что нужно смотреть на данные что приходит, то и должно уходить.

ivan.v
31.03.2023, 01:03
Объединение нужно, если вы объединяете, REAL, DWORD ( 32 битные переменные), состоящие из 2 регистров, другие туда вписывать не надо.

Допустим будет еще переменные с типом real, их туда же можно добавить ниже тех переменных?

kondor3000
31.03.2023, 01:05
Допустим будет еще переменные с типом real, их туда же можно добавить ниже тех переменных?

Можно, вы же уже 2 добавили))
Кстати в 2.3 все намного проще бы было.

ivan.v
31.03.2023, 01:07
Можно, вы же уже 2 добавили))
Понял. Еще раз спасибо огромное!!!

ivan.v
31.03.2023, 01:13
Можно, вы же уже 2 добавили))
Кстати в 2.3 все намного проще бы было.

предлагаете для начинающих ее установить ?

kondor3000
31.03.2023, 08:26
предлагаете для начинающих ее установить ?

Я ничего не предлагаю, был разговор про ПЛК110 и Codesys 2.3, вот там всё проще. Никаких объединений и подобного, взял REAL и его же отправил.

ivan.v
31.03.2023, 17:31
Я ничего не предлагаю, был разговор про ПЛК110 и Codesys 2.3, вот там всё проще. Никаких объединений и подобного, взял REAL и его же отправил.

Понял спасибо.

keysansa
31.03.2023, 23:12
А если нет потребности в двух режимах?

Тогда и сообщения бы не было.

ivan.v
04.04.2023, 20:57
Здравствуйте. Разъясните пожалуйста, что делаю не так, при передаче данных с ПЧ (сосотояние) на панель в историческую таблицу. Вывод значений не корректный.

kondor3000
04.04.2023, 21:20
Здравствуйте. Разъясните пожалуйста, что делаю не так, при передаче данных с ПЧ (сосотояние) на панель в историческую таблицу. Вывод значений не корректный.

Прежде чем пихать в таблицу вы сначала на дисплей выведите, биты тут вообще не при делах.
1, 2 и 3 это значения в регистре 3000H, а не биты. И таблицы аж 2 штуки удалите.
Квитирование, это подтверждение, что оператор увидел и подтвердил бит Аварии. Тут это вообще не надо.

А вот в регистре 2001H, там биты.

ivan.v
04.04.2023, 21:40
Прежде чем пихать в таблицу вы сначала на дисплей выведите, биты тут вообще не при делах.
1, 2 и 3 это значения в регистре, а не биты.

А вот в регистре 2001H, там биты.

Получается то что я сделал подойдет только к 2001H если бы функция была бы на чтение?

ivan.v
04.04.2023, 21:42
Прежде чем пихать в таблицу вы сначала на дисплей выведите, биты тут вообще не при делах.
1, 2 и 3 это значения в регистре 3000H, а не биты.

А вот в регистре 2001H, там биты.

То есть нужно в таблицу писать значения 1, 2 и 3 а потом делать соотнесение этим значениям?

kondor3000
04.04.2023, 21:50
То есть нужно в таблицу писать значения 1, 2 и 3 а потом делать соотнесение этим значениям?
И таблицы аж 2 штуки удалите.
Квитирование, это подтверждение, что оператор увидел и подтвердил бит Аварии. Тут это вообще не надо.

ivan.v
04.04.2023, 21:59
И таблицы аж 2 штуки удалите.
Квитирование, это подтверждение, что оператор увидел и подтвердил бит Аварии. Тут это вообще не надо.
Значение можно вывести , но это все будет только в одной строчке.

ivan.v
04.04.2023, 23:25
Прежде чем пихать в таблицу вы сначала на дисплей выведите, биты тут вообще не при делах.
1, 2 и 3 это значения в регистре 3000H, а не биты. И таблицы аж 2 штуки удалите.
Квитирование, это подтверждение, что оператор увидел и подтвердил бит Аварии. Тут это вообще не надо.

А вот в регистре 2001H, там биты.
Также это подойдет для этого случая, здесь тоже биты в 20 регистре ?

ivan.v
04.04.2023, 23:58
Прежде чем пихать в таблицу вы сначала на дисплей выведите, биты тут вообще не при делах.
1, 2 и 3 это значения в регистре 3000H, а не биты. И таблицы аж 2 штуки удалите.
Квитирование, это подтверждение, что оператор увидел и подтвердил бит Аварии. Тут это вообще не надо.

А вот в регистре 2001H, там биты.

значит в панель я правильно отправляю, что получил с ПЧ ?

kondor3000
05.04.2023, 09:53
Также это подойдет для этого случая, здесь тоже биты в 20 регистре ?

В принципе подойдёт, всё зависит от ТЗ, что вам надо вывести и нужна ли таблица с ошибками ПЧ.

ivan.v
05.04.2023, 14:18
В принципе подойдёт, всё зависит от ТЗ, что вам надо вывести и нужна ли таблица с ошибками ПЧ.

Понял. Всё-таки с теми значениями как быть. Если всё-таки допустим нужно вывести значение и привязать к определенному тексту, это можно как то сделать?

kondor3000
05.04.2023, 14:20
Понял. Всё-таки с теми значениями как быть. Если всё-таки допустим нужно вывести значение и привязать к определенному тексту, это можно как то сделать?

Думаю, это правильнее, чем таблицу городить)) Используйте динамический текст. Каждому числу, присвойте нужную надпись.

ivan.v
06.04.2023, 17:57
Думаю, это правильнее, чем таблицу городить)) Используйте динамический текст. Каждому числу, присвойте нужную надпись.
Спасибо!!! Так и сделал, но вот до конца разобраться с передачей битов не могу. Сейчас столкнулся с выводом состояния бита на панель. Взял другой ПЧ с другими регистрами. Запустить (передать в ПЧ бит запуска получилось) в том числе и реверс, а вот считать С ПЧ и передать на панель аналогично не получается, хотя их видно что они приходят с ПЧ. Может есть обучающий материал как это делать правильно?

kondor3000
06.04.2023, 19:37
Это БИТЫ, а не байты, как можно браться за проекты, если вы даже основ не знаете.
1 байт это 8 бит. 1 регистр это 2 байта и 16 бит. Это вам уже писал несколько раз.67080
Изучайте справку Codesys 2.3 по F1, типы переменных.

ivan.v
06.04.2023, 20:09
Это БИТЫ, а не байты, как можно браться за проекты, если вы даже основ не знаете.
1 байт это 8 бит. 1 регистр это 2 байта и 16 бит. Это вам уже писал несколько раз.67080
Изучайте справку Codesys 2.3 по F1, типы переменных.

Ошибку понял, исправился. За проекты никто не берется, есть желание и интерес поэтому и изучаю, а форум я считаю для этого и существует, чтобы спросить у грамотных людей как сделать правильно, и подсказать ошибки.

ivan.v
06.04.2023, 20:47
Это БИТЫ, а не байты, как можно браться за проекты, если вы даже основ не знаете.
1 байт это 8 бит. 1 регистр это 2 байта и 16 бит. Это вам уже писал несколько раз.67080
Изучайте справку Codesys 2.3 по F1, типы переменных.

Поправьте если не прав опять. Нужно использовать наверное как owen logic, функцию чтения бита, с последующей передачей на панель? На панели использовать уже область памяти PSB.

kondor3000
06.04.2023, 20:49
Ошибку понял, исправился. За проекты никто не берется, есть желание и интерес поэтому и изучаю, а форум я считаю для этого и существует, чтобы спросить у грамотных людей как сделать правильно, и подсказать ошибки.

Это не в первый раз, изучите типы переменных.
А по вопросу, у вас одна переменная 2 раза, внизу и вверху, вторая переписывает первую 67084
Поставьте нужную просто) Адреса правильные.

ivan.v
06.04.2023, 21:00
Это не в первый раз, изучите типы переменных.
А по вопросу, у вас одна переменная 2 раза, внизу и вверху, вторая переписывает первую 67084 и здесь тоже 67085
Поставьте нужную просто) Адреса правильные.

Спасибо!!!

kondor3000
06.04.2023, 22:11
По поводу бит, как собирать биты в маску и разбирать из маски в Лоджике, уже ссылку давал.

в ПЛК, полученную маску бит можно разложить на биты прямо в программе, добавив номер бита через точку, например
Ride_status_PH_3.0 => бит 0
Ride_status_PH_3.1 => бит 1
Ride_status_PH_3.2 => бит 2
Ride_status_PH_3.3 => бит 3 и так далее.

Cобрать биты в Маску так
бит 0 => Mask.0
бит 1 => Mask.1
бит 2 => Mask.2
бит 3 => Mask.3, и уже Mask отправить например на панель.

ivan.v
07.04.2023, 00:03
По поводу бит, как собирать биты в маску и разбирать из маски в Лоджике, уже ссылку давал.

в ПЛК, полученную маску бит можно разложить на биты прямо в программе, добавив номер бита через точку, например
Ride_status_PH_3.0 => бит 0
Ride_status_PH_3.1 => бит 1
Ride_status_PH_3.2 => бит 2
Ride_status_PH_3.3 => бит 3 и так далее.

Cобрать биты в Маску так
бит 0 => Mask.0
бит 1 => Mask.1
бит 2 => Mask.2
бит 3 => Mask.3, и уже Mask отправить например на панель.
Спасибо понял, нужно попробовать сделать.

ivan.v
13.04.2023, 19:16
Это БИТЫ, а не байты, как можно браться за проекты, если вы даже основ не знаете.
1 байт это 8 бит. 1 регистр это 2 байта и 16 бит. Это вам уже писал несколько раз.67080
Изучайте справку Codesys 2.3 по F1, типы переменных.
Здравствуйте. Подскажите пожалуйста, такая ситуация. Если запускается ЭД с ПЧ в прямом направлении, то значения о состоянии фактической частоты выводятся корректно. Если запускать в реверсном направлении. То значения фактической частоты начинают с максимально возможной цифры для двух байт - 65535. Можно ли преобразовать каким то образом чтобы фактическая частота выводилась корректно. Можно конечно перекинуть питание на ЭД и использовать именно прямое вращение, но на ЭД стоит энкодер.

kondor3000
13.04.2023, 20:51
Здравствуйте. Подскажите пожалуйста, такая ситуация. Если запускается ЭД с ПЧ в прямом направлении, то значения о состоянии фактической частоты выводятся корректно. Если запускать в реверсном направлении. То значения фактической частоты начинают с максимально возможной цифры для двух байт - 65535. Можно ли преобразовать каким то образом чтобы фактическая частота выводилась корректно. Можно конечно перекинуть питание на ЭД и использовать именно прямое вращение, но на ЭД стоит энкодер.

Какой тип данных у вас стоит на частоте? Скорее всего WORD, если сделаете INT ( а в панели поставите DEC), что будет показывать?
И пишите про что вы спрашиваете, про панель, ПЛК или ПР.

ivan.v
13.04.2023, 21:06
Какой тип данных у вас стоит на частоте? Скорее всего WORD, если сделаете INT ( а в панели поставите DEC), что будет показывать?
И пишите про что вы спрашиваете, про панель, ПЛК или ПР.

Использую тип данных WORD, при реверсе изначально приходит значение грубо сказать "с конца 65535". Вероятно это так и должно, вот только инвертировать это возможно? При прямом вращении все как положено отображается. Еще подскажите, сымитировать панель + ПЛК совместно возможно без физических устройств?

kondor3000
13.04.2023, 21:40
Использую тип данных WORD, при реверсе изначально приходит значение грубо сказать "с конца 65535". Вероятно это так и должно, вот только инвертировать это возможно? При прямом вращении все как положено отображается. Еще подскажите, сымитировать панель + ПЛК совместно возможно без физических устройств?

Так и не написали где показывает -65535 ?
Вот скрин на панели, в одном и том же регистре одно и тоже число, 67293 на ПЛК разный тип данных 67295
только представление чисел разное

Чтобы сделать эмуляцию, нужно хотя бы одно физическое устройство и переходник USB-RS485, типа АС-4.
Эмулятор ПЛК может работать и как мастер и как слейв, панель в эмуляции будет работать только как мастер сети (Модбас RTU).
Для тренировки можно купить панель в 4-5 раз дешевле СПхх

ivan.v
14.04.2023, 01:30
Так и не написали где показывает -65535 ?
Вот скрин на панели, в одном и том же регистре одно и тоже число, 67293 на ПЛК разный тип данных 67295
только представление чисел разное

Чтобы сделать эмуляцию, нужно хотя бы одно физическое устройство и переходник USB-RS485, типа АС-4.
Эмулятор ПЛК может работать и как мастер и как слейв, панель в эмуляции будет работать только как мастер сети (Модбас RTU).
Для тренировки можно купить панель в 4-5 раз дешевле СПхх
Хорошо. Попробую на панели поменять тип данных.

ivan.v
14.04.2023, 11:16
Хорошо. Попробую на панели поменять тип данных.
Спасибо за подсказку. На панели заменил формат данных с INT в DEC как Вы и говорили, теперь отображается информация адекватно, правда с минусом при реверсе, но хоть понятна фактическая частота. Еще такой момент, нужно ли объединять два регистра для передачи значения, что указано на фото? Смысл в том что выходной ток рассчитывается по формуле (фото), но сделав по инструкции присутствует ошибка и данные теряются на умножении (это из за большого значения, я же вроде делю его потом)?

petera
14.04.2023, 11:56
Спасибо за подсказку. На панели заменил формат данных с INT в DEC как Вы и говорили, теперь отображается информация адекватно, правда с минусом при реверсе, но хоть понятна фактическая частота. Еще такой момент, нужно ли объединять два регистра для передачи значения, что указано на фото? Смысл в том что выходной ток рассчитывается по формуле (фото), но сделав по инструкции присутствует ошибка и данные теряются на умножении (это из за большого значения, я же вроде делю его потом)?
Упростить выражение

X = A * 4 * 1300 / 655360 = A * 130 / 16384 = A *65 / 8192

ivan.v
14.04.2023, 12:02
Упростить выражение

X = A * 4 * 1300 / 655360 = A * 130 / 16384 = A *65 / 8192
Правильно понимаю эта проблема только из за больших значений, или все таки из за того что значение получается с точкой ?

kondor3000
14.04.2023, 13:33
Правильно понимаю эта проблема только из за больших значений, или все таки из за того что значение получается с точкой ?

Проблема из за больших значений, надо использовать например DWORD (или сразу конветрировать в REAL) и выход получается с точкой ( REAL ), даже после упрощения.
Но передать можно и целочисленным, например 6,8 А получилось, умножаем на 10 и конвертируем в WORD и передаём число 68,
а в панели просто ставим 1 знак после запятой, (как бы делим на 10)

Конвертировать в REAL или DWORD ( WORD) можно добавив элемент и вписать в него TO_REAL или TO_DWORD ( TO_WORD )

Кстати если вы хотите убрать минус на панели для частоты, в программе ПЛК между переменными, можно тоже добавить элемент и вписать в него ABS (число по модулю), только числа надо будет сначала конвертировать в INT.
Например получили 65535, после конверсии -1, по модулю будет 1, и передаёте потом.

ivan.v
14.04.2023, 14:23
Проблема из за больших значений, надо использовать например DWORD (или сразу конветрировать в REAL) и выход получается с точкой ( REAL ), даже после упрощения.
Но передать можно и целочисленным, например 6,8 А получилось, умножаем на 10 и конвертируем в WORD и передаём число 68,
а в панели просто ставим 1 знак после запятой, (как бы делим на 10)

Конвертировать в REAL или DWORD ( WORD) можно добавив элемент и вписать в него TO_REAL или TO_DWORD ( TO_WORD )

Кстати если вы хотите убрать минус на панели для частоты, в программе ПЛК между переменными, можно тоже добавить элемент и вписать в него ABS (число по модулю), только числа надо будет сначала конвертировать в INT.
Например получили 65535, после конверсии -1, по модулю будет 1, и передаёте потом.

Уточню, если правильно я Вас понял. Я получаю с ПЧ WORD, делаю умножение и если получается значение больше 655360 через функциональный блок TO_REAL или TO_DWORD ( TO_WORD ) конвертирую и отправляю на панель?

kondor3000
14.04.2023, 14:35
Уточню, если правильно я Вас понял. Я получаю с ПЧ WORD, делаю умножение и если получается значение больше 655360 через функциональный блок TO_REAL или TO_DWORD ( TO_WORD ) конвертирую и отправляю на панель?

Не так, полученное сразу конвертируете, лучше сразу в REAL, потом всё считаете, потом умножаете на 10 и конвертируете в WORD и отправляете. Если вам удобнее можно использовать промежуточные переменные.
Для WORD максимум 65535, числа 655360 уже за диапазоном. На предыдущей странице скрин с типами переменных.

ivan.v
14.04.2023, 14:54
Не так, полученное сразу конвертируете, лучше сразу в REAL, потом всё считаете, потом умножаете на 10 и конвертируете в WORD и отправляете. Если вам удобнее можно использовать промежуточные переменные.
Для WORD максимум 65535, числа 655360 уже за диапазоном. На предыдущей странице скрин с типами переменных.

Спасибо!!!

ivan.v
17.04.2023, 22:37
Приветствую!!! Товарищи дайте совет. Если использовать преобразователь RS485 в Ethernet и подключить несколько устройств со стороны 485 шины, то в проект codesys добавляется каждое устройство с одним и тем же IP адресом? Если добавить одно устройство, то адрес и регистры будут совпадать ( при опросе двух допустим ПЧ с одинаковыми регистрами)

Александр Пинэко-Скворцов
18.04.2023, 09:21
Приветствую!!! Товарищи дайте совет. Если использовать преобразователь RS485 в Ethernet и подключить несколько устройств со стороны 485 шины, то в проект codesys добавляется каждое устройство с одним и тем же IP адресом? Если добавить одно устройство, то адрес и регистры будут совпадать ( при опросе двух допустим ПЧ с одинаковыми регистрами)

Добрый день!

Используете преобразователь интерфейса или преобразователь протокола Modbus ?
По преобразователям протокола см. видео (https://youtu.be/Czcar_HOTxU?t=454).

ivan.v
18.04.2023, 11:10
Добрый день!

Используете преобразователь интерфейса или преобразователь протокола Modbus ?
По преобразователям протокола см. видео (https://youtu.be/Czcar_HOTxU?t=454).
.
Использую RS485 TO ETH (B) https://www.waveshare.com/wiki/RS485_TO_ETH_(B). Одно устройство подключил, работает. Вот если два устройства подключить, IP адрес один же, как указать адрес устройства.

Александр Пинэко-Скворцов
18.04.2023, 12:57
.
Использую RS485 TO ETH (B) https://www.waveshare.com/wiki/RS485_TO_ETH_(B). Одно устройство подключил, работает. Вот если два устройства подключить, IP адрес один же, как указать адрес устройства.

Cм. видео по ссылке из предыдущего сообщения.
Шлюз добавляется как Modbus TCP Slave Device, а уже в него устройства Modbus Slave COM Port.

ivan.v
19.04.2023, 09:41
Cм. видео по ссылке из предыдущего сообщения.
Шлюз добавляется как Modbus TCP Slave Device, а уже в него устройства Modbus Slave COM Port.

Спасибо понял

ivan.v
19.04.2023, 15:20
Спасибо понял
Подскажите, вроде по видео все сделал, но по шине rs 485 команды не проходят. Преобразователь видит.

ivan.v
19.04.2023, 15:51
Разобрался!!!

ivan.v
19.04.2023, 18:21
Товарищи, что за сообщение в программе при загрузке проекта что за срок заканчивается 26 апреля ? Можете мне "дремучему" :)подсказать. В Таблице регистров ПЧ есть статус ПЧ, тип данных WORD. В панели сделал таблицу состояния ПЧ, но там нужны именно биты, а не целое число которое я получил с ПЧ. В овен ложик я ставил блок сравнения с числом полученным с ПЧ и передавал этой бит в панель, там цель была отследить что ЭД начал вращаться? В случае допустим получения числа "3" (Останов) с ПЧ, это одновременно 2 бита включенных. может есть способ другой?

ivan.v
20.04.2023, 11:29
По поводу бит, как собирать биты в маску и разбирать из маски в Лоджике, уже ссылку давал.

в ПЛК, полученную маску бит можно разложить на биты прямо в программе, добавив номер бита через точку, например
Ride_status_PH_3.0 => бит 0
Ride_status_PH_3.1 => бит 1
Ride_status_PH_3.2 => бит 2
Ride_status_PH_3.3 => бит 3 и так далее.

Cобрать биты в Маску так
бит 0 => Mask.0
бит 1 => Mask.1
бит 2 => Mask.2
бит 3 => Mask.3, и уже Mask отправить например на панель.

Можете подсказать, как правильно это применять. сразу после объявления переменой я присваиваю этот комментарий? Могу ли я этот способ применить к "В Таблице регистров ПЧ есть статус ПЧ, тип данных WORD. В панели сделал таблицу состояния ПЧ, но там нужны именно биты, а не целое число которое я получил с ПЧ. В овен ложик я ставил блок сравнения с числом полученным с ПЧ и передавал этой бит в панель, там цель была отследить что ЭД начал вращаться? В случае допустим получения числа "3" (Останов) с ПЧ, это одновременно 2 бита включенных. может есть способ другой?"

kondor3000
20.04.2023, 23:37
Можете подсказать, как правильно это применять. сразу после объявления переменой я присваиваю этот комментарий? Могу ли я этот способ применить к "В Таблице регистров ПЧ есть статус ПЧ, тип данных WORD. В панели сделал таблицу состояния ПЧ, но там нужны именно биты, а не целое число которое я получил с ПЧ. В овен ложик я ставил блок сравнения с числом полученным с ПЧ и передавал этой бит в панель, там цель была отследить что ЭД начал вращаться? В случае допустим получения числа "3" (Останов) с ПЧ, это одновременно 2 бита включенных. может есть способ другой?"

Вообще то вы обещали попробовать разложить биты и собрать их в маску. Проблема то, поставить вход и выход несколько раз.
Очевидно, так и не попробовали, иначе бы не спрашивали по 3 разу.
А если вам надо принять целочисленные 1,2,3 и собрать из них маску бит Mask.0, Mask.1, Mask.2, то так:
Всё тоже самое как вы делали в ПР, только упаковываете через точку, смотри скрин 67460

ivan.v
21.04.2023, 07:25
Вообще то вы обещали попробовать разложить биты и собрать их в маску. Проблема то, поставить вход и выход несколько раз.
Очевидно, так и не попробовали, иначе бы не спрашивали по 3 разу.
А если вам надо принять целочисленные 1,2,3 и собрать из них маску бит Mask.0, Mask.1, Mask.2, то так:
Всё тоже самое как вы делали в ПР, только упаковываете через точку, смотри скрин 67460
Вы правы не успел попробовать, теперь понял, для управления определенным битом, нужно делать сравнение с часлом полученным с ПЧ. В очередной раз спасибо Вам огромное за разъяснение. Вот ещё бы выяснить что за сообщение выскакивает по безопасности при загрузке проекта, надеюсь по истечении этого времени он у меня продолжит работать?

Александр Пинэко-Скворцов
21.04.2023, 13:06
Добрый день!

Сообщение с датой - предупреждение CODESYS об истечении срока сертификата подключения к ПЛК.
Можно проигнорировать, на работе это никак не отразится.

ivan.v
21.04.2023, 13:58
Добрый день!

Сообщение с датой - предупреждение CODESYS об истечении срока сертификата подключения к ПЛК.
Можно проигнорировать, на работе это никак не отразится.

Понял спасибо!!!

ivan.v
28.04.2023, 16:53
Добрый день. Подскажите есть ли в программе Codesys функция экспортировать все переменные в exel?

kondor3000
28.04.2023, 18:35
Добрый день. Подскажите есть ли в программе Codesys функция экспортировать все переменные в exel?

Выбрать Проект/ Экспорт PLCopenXML, выберите блоки нужные для экспорта. Файл будет с расширением XML, его можно открыть с помощью exel.
Все переменные будут с именем, типом данных и подписью, если она была.

ivan.v
29.04.2023, 10:08
Выбрать Проект/ Экспорт PLCopenXML, выберите блоки нужные для экспорта. Файл будет с расширением XML, его можно открыть с помощью exel.
Все переменные будут с именем, типом данных и подписью, если она была.

Спасибо большое!!!

ivan.v
15.05.2023, 10:40
Добрый день. Товарищи подскажите, возможно ли сделать ввод данных цифрового значения с двух разных "мест" с блокировкой. Смысл сделать регулировку в автоматическом режиме с блокировкой с ручного управления и на оборот.

kondor3000
15.05.2023, 10:48
Добрый день. Товарищи подскажите, возможно ли сделать ввод данных цифрового значения с двух разных "мест" с блокировкой. Смысл сделать регулировку в автоматическом режиме с блокировкой с ручного управления и на оборот.

Это делается через SEL, вместо OR, верхний вход управление булевой переменной, Ручн/Авто (FALSE- Ручной, TRUE- Автоматич) . Два других входа, ваши входные значения.

1exan
15.05.2023, 10:48
Добрый день. Товарищи подскажите, возможно ли сделать ввод данных цифрового значения с двух разных "мест" с блокировкой. Смысл сделать регулировку в автоматическом режиме с блокировкой с ручного управления и на оборот.

SEL с управлением от переменной текущего режима?

ivan.v
15.05.2023, 16:54
Это делается через SEL, вместо OR, верхний вход управление булевой переменной, Ручн/Авто (FALSE- Ручной, TRUE- Автоматич) . Два других входа, ваши входные значения.

Спасибо :))

ivan.v
22.05.2023, 12:08
Добрый день. Подскажите пожалуйста, при добавлении блока BLINK пишет не известный тип, правильно понимаю что его нету в библиотеке?

Евгений Кислов
22.05.2023, 12:17
Добрый день. Подскажите пожалуйста, при добавлении блока BLINK пишет не известный тип, правильно понимаю что его нету в библиотеке?

Добрый день.
Вам нужно добавить в проект библиотеку Util.

ivan.v
22.05.2023, 12:19
Добрый день.
Вам нужно добавить в проект библиотеку Util.

Где ее можно скачать? Подскажите пожалуйста.

Евгений Кислов
22.05.2023, 12:35
Где ее можно скачать? Подскажите пожалуйста.

Ее не надо качать, она входит в дистрибутив CODESYS.
Вам нужно добавить ее в менеджере библиотек вашего проекта.

ivan.v
22.05.2023, 12:50
Ее не надо качать, она входит в дистрибутив CODESYS.
Вам нужно добавить ее в менеджере библиотек вашего проекта.

Спасибо огромное, разобрался.

ivan.v
05.07.2023, 09:31
Ее не надо качать, она входит в дистрибутив CODESYS.
Вам нужно добавить ее в менеджере библиотек вашего проекта.

Добрый день. Помогите разобраться с функциональным блоком SCALE. Не нашел его в библиотеке Codesys, но нашел видео по написанию его. Вроде все как на видео, но проблема в том, что при запуске программы пишет Программа загружена-Исключение. Что я сделал не так, может этот блок всё-таки где-то есть в библиотеке?

Евгений Кислов
05.07.2023, 10:27
Добрый день. Помогите разобраться с функциональным блоком SCALE. Не нашел его в библиотеке Codesys, но нашел видео по написанию его. Вроде все как на видео, но проблема в том, что при запуске программы пишет Программа загружена-Исключение. Что я сделал не так, может этот блок всё-таки где-то есть в библиотеке?

Добрый день.
У вас происходит деление на 0 - вам нужно исключить возможность этого.
Например, добавьте перед вашим кодом проверку на то, что делитель не равен 0.

ivan.v
05.07.2023, 10:51
Добрый день.
У вас происходит деление на 0 - вам нужно исключить возможность этого.
Например, добавьте перед вашим кодом проверку на то, что делитель не равен 0.

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

Евгений Кислов
05.07.2023, 10:59
Евгений подскажите как это сделать? Получается чтобы запустить программу нужно ввести значения на вход Scale, а чтобы записать нужно их сначала считать с регистра. Замкнутый круг какой-то

Внутри SCALE:



IF (MAX1-MIN1) + MIN2 <> 0 THEN
OUT := ... ; // тот же код, что и у вас на скриншоте
END_IF

ivan.v
05.07.2023, 14:00
изучите библиотеку OSCAT, там помимо скале много других полезностей

Где ее можно скачать?

ivan.v
05.07.2023, 17:16
https://owen.ru/product/codesys_v3/libraries
раздел Свободно распространяемые библиотеки

Спасибо большое!!!

chm
05.07.2023, 17:24
подскажите, какие скрытые вещи, не указанные в кино https://owen.ru/media/video/owen_plk210_opc_ua могут помешать мне считывать UAExpertом данные с плк 210?

ivan.v
05.07.2023, 17:27
Внутри SCALE:



IF (MAX1-MIN1) + MIN2 <> 0 THEN
OUT := ... ; // тот же код, что и у вас на скриншоте
END_IF


Спасибо большое!!! Если не сложно, можете подсказать по быстродействию передачи сигнала с панели в ПЛК. Если где либо настройки скорости передачи команд через ethernet? Ситуация такая что допустим при включении любого ЭД через ПЧ, происходит задержка где-то 1-3 секунд, это нормально? До того как было три ПЧ вроде все неплохо работало. Сейчас когда установил 2 панели 8 ПЧ стал замечать задержки, а когда не включаешь по питанию часть, вообще зависает примерно до
15 секунд. Это нормально?

Евгений Кислов
05.07.2023, 18:33
Спасибо большое!!! Если не сложно, можете подсказать по быстродействию передачи сигнала с панели в ПЛК. Если где либо настройки скорости передачи команд через ethernet? Ситуация такая что допустим при включении любого ЭД через ПЧ, происходит задержка где-то 1-3 секунд, это нормально? До того как было три ПЧ вроде все неплохо работало. Сейчас когда установил 2 панели 8 ПЧ стал замечать задержки, а когда не включаешь по питанию часть, вообще зависает примерно до
15 секунд. Это нормально?

Какие именно ПЧ вы опрашиваете?
Выложите ваш проект - возможно, получится что-то подсказать.

ivan.v
05.07.2023, 18:55
Какие именно ПЧ вы опрашиваете?
Выложите ваш проект - возможно, получится что-то подсказать.
Проект для Codesys. Опрашиваю все ПЧ которые находятся в проекте + 2 панели

chm
06.07.2023, 10:14
подскажите, какие скрытые вещи, не указанные в кино https://owen.ru/media/video/owen_plk210_opc_ua могут помешать мне считывать UAExpertом данные с плк 210?

Короче, по совету знакомого, зашёл в него через Telnet и скомандовал reboot. После этого получилось всё сделать как в кино. Что это было - не понимаю, наверное, периодически это надо делать, когда грузишь в него кучу разных программ каждый день.

Евгений Кислов
06.07.2023, 10:45
Проект для Codesys. Опрашиваю все ПЧ которые находятся в проекте + 2 панели

Вы выше писали про Ethernet.
Скажите, как называются в вашем проекте ПЧ, которые вы опрашиваете?

ivan.v
06.07.2023, 12:02
Вы выше писали про Ethernet.
Скажите, как называются в вашем проекте ПЧ, которые вы опрашиваете?

Евгений, наверное я не правильно выразился. По Ethernet связаны только между собой две панели и ПЛК + преобразователь RS485 to ethernet. Все остальное по шине 485ой. могу нарисовать в Автокаде, что как между собой подключено. В продолжении темы, на фото видно что у каждое устройство со знаком "!" это нормально.

Евгений Кислов
06.07.2023, 12:07
Евгений, наверное я не правильно выразился. По Ethernet связаны только между собой две панели и ПЛК + преобразователь RS485 to ethernet. Все остальное по шине 485ой. могу нарисовать в Автокаде, что как между собой подключено. В продолжении темы, на фото видно что у каждое устройство со знаком "!" это нормально.

По вашему скриншоту - у вас когда-то недолго была связь со слэйвам, а потом пропала.
В итоге - на каких устройства задержка? На VCI?

ivan.v
06.07.2023, 12:44
По вашему скриншоту - у вас когда-то недолго была связь со слэйвам, а потом пропала.
В итоге - на каких устройства задержка? На VCI?
MCI_ подключил последним. До этого он был отключен. Задержка на всех по разному, тако ощущение что если запускаешь какой либо ЭД и продаешь перед опросом его, то сработает быстро, а если попал сразу после опраса получается задержка. Сниму небольшое видео позже.

ivan.v
06.07.2023, 13:06
MCI_ подключил последним. До этого он был отключен. Задержка на всех по разному, тако ощущение что если запускаешь какой либо ЭД и продаешь перед опросом его, то сработает быстро, а если попал сразу после опраса получается задержка. Сниму небольшое видео позже.
Схема подключения

Евгений Кислов
06.07.2023, 13:10
MCI_ подключил последним. До этого он был отключен. Задержка на всех по разному, тако ощущение что если запускаешь какой либо ЭД и продаешь перед опросом его, то сработает быстро, а если попал сразу после опраса получается задержка. Сниму небольшое видео позже.

Тогда на каких ПЧ задержка? Как они в проекте называются?

ivan.v
06.07.2023, 16:49
Тогда на каких ПЧ задержка? Как они в проекте называются?

постараюсь сделать видео

ivan.v
07.07.2023, 19:20
Тогда на каких ПЧ задержка? Как они в проекте называются?
Здравствуйте. Видео запуска и остановки MCI_G50_1_01_1 https://disk.yandex.ru/i/3YwzDQ_4ENqsqw Вот думаю может поставить TP — функциональный блок «импульс-таймер на все пуски и стопы, решит ли это вопрос?

ivan.v
10.07.2023, 13:03
Тогда на каких ПЧ задержка? Как они в проекте называются?

Евгений добрый день. Возможно ли на панели делать установку бита кнопкой, а сброс этого бита в плк после обработки? Тогда можно будет не держать кнопку и не ждать когда дойдет сигнал.

Евгений Кислов
11.07.2023, 09:15
Евгений добрый день. Возможно ли на панели делать установку бита кнопкой, а сброс этого бита в плк после обработки? Тогда можно будет не держать кнопку и не ждать когда дойдет сигнал.

Добрый день.
Да, это возможно - например, с помощью элемента Переключитатель с индикацией.

ivan.v
11.07.2023, 10:59
Добрый день.
Да, это возможно - например, с помощью элемента Переключитатель с индикацией.
При включении этим элементом бита, нету возможности его отключить из вне. Только еще одним переключателем с функцией перевода бита в выключенное состояние. Возможно ли это сделать с помощью макроса?

Евгений Кислов
11.07.2023, 11:08
При включении этим элементом бита, нету возможности его отключить из вне. Только еще одним переключателем с функцией перевода бита в выключенное состояние. Возможно ли это сделать с помощью макроса?

Вы можете изменить состояние переключателя со стороны ПЛК.
Посмотрите пример для вашего случая:
https://ftp.owen.ru/CoDeSys3/21_Examples/01_3.5.11.5/03_Modbus/Example_SP3xx_PLC210_3517_v1.zip