Как передать значение из меркерного слова в перефирийное вхо

Инженерное программное обеспечение

Как передать значение из меркерного слова в перефирийное вхо

Сообщение phantom » 31 май 2019, 22:18

Добрый день,
Как передать значение из меркерного слова(MW3) в перефирийное входное слово (PIW300), на симуляторе эмулирую энкодер. В HardWare у меня прописан энкодер с входами PIW300, PIW302, PIW304. Когда я пытаюсь с эмулятора напрямую передать в PIW300 в PLCSIM симулятор ругается, что адрес вне диапазона. Зато спокойно можно создать адреса IW80, QW80... и в PLCSim. Создал функцию, в MOVE, на входе (IN) задал IW80, на выходе OUT - MW3. Теперь у меня значение от энкодера хранятся в MW3 как передать в PIW300, чтобы запустить процесс остальных функций?
phantom
Любитель
 
Сообщения: 62
Зарегистрирован: 02 дек 2017, 18:56

Re: Как передать значение из меркерного слова в перефирийное

Сообщение Михайло » 01 июн 2019, 10:16

Там где-то в Step7 задается размер периферийной области PIW, возможно он у вас по умолчанию - что-то типа 256, поэтому PIW300 дает ошибку.
Михайло
Администратор
 
Сообщения: 3890
Зарегистрирован: 19 сен 2012, 19:16

Re: Как передать значение из меркерного слова в перефирийное

Сообщение POV » 01 июн 2019, 11:50

PIW можно только читать, PQW только писать. IW и QW - писать, читать в свое удовольствие, это просто область памяти, видна на закладке в Module information. Ее размер задается в настройках ЦПУ и она обновляется ОС ЦПУ в основном цикле (если иное не задано в настройках). Если вы измените размер области I, Q на более 300, то сможете записать IW300, но записать PIW300 не получиться.
POV
Любитель
 
Сообщения: 79
Зарегистрирован: 04 авг 2016, 16:28
Откуда: Нижний Новгород

Re: Как передать значение из меркерного слова в перефирийное

Сообщение mr_Frodo » 01 июн 2019, 17:10

phantom писал(а):Добрый день,
Как передать значение из меркерного слова(MW3) в перефирийное входное слово (PIW300), на симуляторе эмулирую энкодер. В HardWare у меня прописан энкодер с входами PIW300, PIW302, PIW304. Когда я пытаюсь с эмулятора напрямую передать в PIW300 в PLCSIM симулятор ругается, что адрес вне диапазона. Зато спокойно можно создать адреса IW80, QW80... и в PLCSim. Создал функцию, в MOVE, на входе (IN) задал IW80, на выходе OUT - MW3. Теперь у меня значение от энкодера хранятся в MW3 как передать в PIW300, чтобы запустить процесс остальных функций?

Я не понял: зачем такая принципиальность в СИМУЛЯТОРЕ использовать периферийный адрес?!? :wall: Если это будет любой другой, что от этого изменится? Проверить работу можно в любом варианте, а в реале использовать требуемый источник.
Вот моя подпись...
Аватара пользователя
mr_Frodo
Профессионал
 
Сообщения: 530
Зарегистрирован: 22 июл 2016, 20:38

Re: Как передать значение из меркерного слова в перефирийное

Сообщение phantom » 01 июн 2019, 21:03

POV писал(а):PIW можно только читать, PQW только писать. IW и QW - писать, читать в свое удовольствие, это просто область памяти, видна на закладке в Module information. Ее размер задается в настройках ЦПУ и она обновляется ОС ЦПУ в основном цикле (если иное не задано в настройках). Если вы измените размер области I, Q на более 300, то сможете записать IW300, но записать PIW300 не получиться.

Спасибо за разъяснение.
phantom
Любитель
 
Сообщения: 62
Зарегистрирован: 02 дек 2017, 18:56

Re: Как передать значение из меркерного слова в перефирийное

Сообщение phantom » 01 июн 2019, 21:06

mr_Frodo писал(а):
phantom писал(а):Добрый день,
Как передать значение из меркерного слова(MW3) в перефирийное входное слово (PIW300), на симуляторе эмулирую энкодер. В HardWare у меня прописан энкодер с входами PIW300, PIW302, PIW304. Когда я пытаюсь с эмулятора напрямую передать в PIW300 в PLCSIM симулятор ругается, что адрес вне диапазона. Зато спокойно можно создать адреса IW80, QW80... и в PLCSim. Создал функцию, в MOVE, на входе (IN) задал IW80, на выходе OUT - MW3. Теперь у меня значение от энкодера хранятся в MW3 как передать в PIW300, чтобы запустить процесс остальных функций?

Я не понял: зачем такая принципиальность в СИМУЛЯТОРЕ использовать периферийный адрес?!? :wall: Если это будет любой другой, что от этого изменится? Проверить работу можно в любом варианте, а в реале использовать требуемый источник.

Мне нужно найти инструкцию/функцию которая принимает значение PIW300, в программе я не нашел. Получается если её в программе нет, то могут эти значения записываться сразу в панельку HMI или сначала записывается DB, а потом передается в панель?
phantom
Любитель
 
Сообщения: 62
Зарегистрирован: 02 дек 2017, 18:56

Re: Как передать значение из меркерного слова в перефирийное

Сообщение POV » 01 июн 2019, 21:18

phantom писал(а):Мне нужно найти инструкцию/функцию которая принимает значение PIW300, в программе я не нашел. Получается если её в программе нет, то могут эти значения записываться сразу в панельку HMI или сначала записывается DB, а потом передается в панель?

Какой ПЛК? Панель? Связь между ними?
Плохо ищите. Может у вас банально включен фильтр на Piw Pqw области в кросс референсе.
Панель обычно читает. Конечно панель может и записать значение, но обычно так не бывает, если энкодер реально нужен в программе.
POV
Любитель
 
Сообщения: 79
Зарегистрирован: 04 авг 2016, 16:28
Откуда: Нижний Новгород

Re: Как передать значение из меркерного слова в перефирийное

Сообщение mr_Frodo » 01 июн 2019, 22:13

Если сделано на косвенной адресации, то пока не перелопатите все программу ничего не найдёте.
Вот моя подпись...
Аватара пользователя
mr_Frodo
Профессионал
 
Сообщения: 530
Зарегистрирован: 22 июл 2016, 20:38

Re: Как передать значение из меркерного слова в перефирийное

Сообщение phantom » 02 июн 2019, 08:58

POV писал(а):
phantom писал(а):Мне нужно найти инструкцию/функцию которая принимает значение PIW300, в программе я не нашел. Получается если её в программе нет, то могут эти значения записываться сразу в панельку HMI или сначала записывается DB, а потом передается в панель?

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


Фильтра точно нет.
phantom
Любитель
 
Сообщения: 62
Зарегистрирован: 02 дек 2017, 18:56

Re: Как передать значение из меркерного слова в перефирийное

Сообщение phantom » 02 июн 2019, 09:01

mr_Frodo писал(а):Если сделано на косвенной адресации, то пока не перелопатите все программу ничего не найдёте.


Помогите определить, скорее всего на косвенной адресации сделано, написано в STL.
Здесь проект https://cloud.mail.ru/public/k7NN/3VC9MhfwF
phantom
Любитель
 
Сообщения: 62
Зарегистрирован: 02 дек 2017, 18:56

Re: Как передать значение из меркерного слова в перефирийное

Сообщение phantom » 02 июн 2019, 09:09

В Hardware энкодеры имеют номера DP-NORM 70, 72, 73 их 3 шт.
phantom
Любитель
 
Сообщения: 62
Зарегистрирован: 02 дек 2017, 18:56

Re: Как передать значение из меркерного слова в перефирийное

Сообщение POV » 02 июн 2019, 12:16

Энкодеры 72 и 73, адреса PIW320 и PIW324, читаются функцией FC25, цепочка 4, вызывается она из FB411, цепочки 1 и 2.
POV
Любитель
 
Сообщения: 79
Зарегистрирован: 04 авг 2016, 16:28
Откуда: Нижний Новгород

Re: Как передать значение из меркерного слова в перефирийное

Сообщение POV » 02 июн 2019, 12:19

Возможно энкодер 70 читался бы FC24, цепочка 2, запись цепочка 6, но FC24 вроде не вызывается и адреса проверить не получилось.
POV
Любитель
 
Сообщения: 79
Зарегистрирован: 04 авг 2016, 16:28
Откуда: Нижний Новгород

Re: Как передать значение из меркерного слова в перефирийное

Сообщение phantom » 02 июн 2019, 19:18

спасибо, да скорее всего 70 энкодер не использовался т.к он крутится не от привода, а от поступления сырья под давлением. "Цепочка" - вы имеете ввиду Нетворк?
phantom
Любитель
 
Сообщения: 62
Зарегистрирован: 02 дек 2017, 18:56

Re: Как передать значение из меркерного слова в перефирийное

Сообщение mr_Frodo » 02 июн 2019, 21:54

phantom писал(а):
mr_Frodo писал(а):Если сделано на косвенной адресации, то пока не перелопатите все программу ничего не найдёте.


Помогите определить, скорее всего на косвенной адресации сделано, написано в STL.
Здесь проект https://cloud.mail.ru/public/k7NN/3VC9MhfwF

Ошибка.
Вот моя подпись...
Аватара пользователя
mr_Frodo
Профессионал
 
Сообщения: 530
Зарегистрирован: 22 июл 2016, 20:38

Re: Как передать значение из меркерного слова в перефирийное

Сообщение phantom » 03 июн 2019, 11:23

переслал в сообщения
phantom
Любитель
 
Сообщения: 62
Зарегистрирован: 02 дек 2017, 18:56

Re: Как передать значение из меркерного слова в перефирийное

Сообщение mr_Frodo » 03 июн 2019, 13:42

Узел 70 считывается в FB110 - NW8
Вот моя подпись...
Аватара пользователя
mr_Frodo
Профессионал
 
Сообщения: 530
Зарегистрирован: 22 июл 2016, 20:38

Re: Как передать значение из меркерного слова в перефирийное

Сообщение phantom » 03 июн 2019, 17:20

mr_Frodo писал(а):Узел 70 считывается в FB110 - NW8

да, спасибо.
значит FC24 за другое отвечает.
POV писал(а):Возможно энкодер 70 читался бы FC24, цепочка 2, запись цепочка 6, но FC24 вроде не вызывается и адреса проверить не получилось.
phantom
Любитель
 
Сообщения: 62
Зарегистрирован: 02 дек 2017, 18:56

Re: Как передать значение из меркерного слова в перефирийное

Сообщение phantom » 03 июн 2019, 17:43

Интересно FB411 работает на косвенной адресации, а в OB1 вызывается CALL, а не UC или CC :dontknow:
phantom
Любитель
 
Сообщения: 62
Зарегистрирован: 02 дек 2017, 18:56

Re: Как передать значение из меркерного слова в перефирийное

Сообщение POV » 03 июн 2019, 18:38

phantom писал(а):Интересно FB411 работает на косвенной адресации, а в OB1 вызывается CALL, а не UC или CC :dontknow:

А при чем тут?

Цитата из хелпа:
If the CALL instruction calls a function block (FB) or a system function block (SFB), an instance data block (DB no.) must be specified in the statement. The use of a variable of the type "BlockFB" or "BlockFC" in conjunction with the CC instruction is not permitted. Since you cannot assign a data block to the call with the CC instruction in the address of the statement, you can only use this instruction fro blocks without block parameters and static local data.Depending on the network you are working with, the Program Editor either generates the UC instruction or the CC instruction during conversion from the Ladder Logic programming language to the Statement List programming language. You should attempt to use the CALL instruction instead to avoid errors occurring in your programs.
POV
Любитель
 
Сообщения: 79
Зарегистрирован: 04 авг 2016, 16:28
Откуда: Нижний Новгород

След.

Вернуться в Simatic TIA Portal / Step7

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1