Добрый день,
Как передать значение из меркерного слова(MW3) в перефирийное входное слово (PIW300), на симуляторе эмулирую энкодер. В HardWare у меня прописан энкодер с входами PIW300, PIW302, PIW304. Когда я пытаюсь с эмулятора напрямую передать в PIW300 в PLCSIM симулятор ругается, что адрес вне диапазона. Зато спокойно можно создать адреса IW80, QW80... и в PLCSim. Создал функцию, в MOVE, на входе (IN) задал IW80, на выходе OUT - MW3. Теперь у меня значение от энкодера хранятся в MW3 как передать в PIW300, чтобы запустить процесс остальных функций?
Как передать значение из меркерного слова в перефирийное вхо
Re: Как передать значение из меркерного слова в перефирийное
Там где-то в Step7 задается размер периферийной области PIW, возможно он у вас по умолчанию - что-то типа 256, поэтому PIW300 дает ошибку.
Re: Как передать значение из меркерного слова в перефирийное
PIW можно только читать, PQW только писать. IW и QW - писать, читать в свое удовольствие, это просто область памяти, видна на закладке в Module information. Ее размер задается в настройках ЦПУ и она обновляется ОС ЦПУ в основном цикле (если иное не задано в настройках). Если вы измените размер области I, Q на более 300, то сможете записать IW300, но записать PIW300 не получиться.
Re: Как передать значение из меркерного слова в перефирийное
Я не понял: зачем такая принципиальность в СИМУЛЯТОРЕ использовать периферийный адрес?!? Если это будет любой другой, что от этого изменится? Проверить работу можно в любом варианте, а в реале использовать требуемый источник.phantom писал(а):Добрый день,
Как передать значение из меркерного слова(MW3) в перефирийное входное слово (PIW300), на симуляторе эмулирую энкодер. В HardWare у меня прописан энкодер с входами PIW300, PIW302, PIW304. Когда я пытаюсь с эмулятора напрямую передать в PIW300 в PLCSIM симулятор ругается, что адрес вне диапазона. Зато спокойно можно создать адреса IW80, QW80... и в PLCSim. Создал функцию, в MOVE, на входе (IN) задал IW80, на выходе OUT - MW3. Теперь у меня значение от энкодера хранятся в MW3 как передать в PIW300, чтобы запустить процесс остальных функций?
Вот моя подпись...
Re: Как передать значение из меркерного слова в перефирийное
Спасибо за разъяснение.POV писал(а):PIW можно только читать, PQW только писать. IW и QW - писать, читать в свое удовольствие, это просто область памяти, видна на закладке в Module information. Ее размер задается в настройках ЦПУ и она обновляется ОС ЦПУ в основном цикле (если иное не задано в настройках). Если вы измените размер области I, Q на более 300, то сможете записать IW300, но записать PIW300 не получиться.
Re: Как передать значение из меркерного слова в перефирийное
Мне нужно найти инструкцию/функцию которая принимает значение PIW300, в программе я не нашел. Получается если её в программе нет, то могут эти значения записываться сразу в панельку HMI или сначала записывается DB, а потом передается в панель?mr_Frodo писал(а):Я не понял: зачем такая принципиальность в СИМУЛЯТОРЕ использовать периферийный адрес?!? Если это будет любой другой, что от этого изменится? Проверить работу можно в любом варианте, а в реале использовать требуемый источник.phantom писал(а):Добрый день,
Как передать значение из меркерного слова(MW3) в перефирийное входное слово (PIW300), на симуляторе эмулирую энкодер. В HardWare у меня прописан энкодер с входами PIW300, PIW302, PIW304. Когда я пытаюсь с эмулятора напрямую передать в PIW300 в PLCSIM симулятор ругается, что адрес вне диапазона. Зато спокойно можно создать адреса IW80, QW80... и в PLCSim. Создал функцию, в MOVE, на входе (IN) задал IW80, на выходе OUT - MW3. Теперь у меня значение от энкодера хранятся в MW3 как передать в PIW300, чтобы запустить процесс остальных функций?
Re: Как передать значение из меркерного слова в перефирийное
Какой ПЛК? Панель? Связь между ними?phantom писал(а):Мне нужно найти инструкцию/функцию которая принимает значение PIW300, в программе я не нашел. Получается если её в программе нет, то могут эти значения записываться сразу в панельку HMI или сначала записывается DB, а потом передается в панель?
Плохо ищите. Может у вас банально включен фильтр на Piw Pqw области в кросс референсе.
Панель обычно читает. Конечно панель может и записать значение, но обычно так не бывает, если энкодер реально нужен в программе.
Re: Как передать значение из меркерного слова в перефирийное
Если сделано на косвенной адресации, то пока не перелопатите все программу ничего не найдёте.
Вот моя подпись...
Re: Как передать значение из меркерного слова в перефирийное
Фильтра точно нет.POV писал(а):Какой ПЛК? Панель? Связь между ними?phantom писал(а):Мне нужно найти инструкцию/функцию которая принимает значение PIW300, в программе я не нашел. Получается если её в программе нет, то могут эти значения записываться сразу в панельку HMI или сначала записывается DB, а потом передается в панель?
Плохо ищите. Может у вас банально включен фильтр на Piw Pqw области в кросс референсе.
Панель обычно читает. Конечно панель может и записать значение, но обычно так не бывает, если энкодер реально нужен в программе.
Re: Как передать значение из меркерного слова в перефирийное
Помогите определить, скорее всего на косвенной адресации сделано, написано в STL.mr_Frodo писал(а):Если сделано на косвенной адресации, то пока не перелопатите все программу ничего не найдёте.
Здесь проект https://cloud.mail.ru/public/k7NN/3VC9MhfwF
Re: Как передать значение из меркерного слова в перефирийное
В Hardware энкодеры имеют номера DP-NORM 70, 72, 73 их 3 шт.
Re: Как передать значение из меркерного слова в перефирийное
Энкодеры 72 и 73, адреса PIW320 и PIW324, читаются функцией FC25, цепочка 4, вызывается она из FB411, цепочки 1 и 2.
Re: Как передать значение из меркерного слова в перефирийное
Возможно энкодер 70 читался бы FC24, цепочка 2, запись цепочка 6, но FC24 вроде не вызывается и адреса проверить не получилось.
Re: Как передать значение из меркерного слова в перефирийное
спасибо, да скорее всего 70 энкодер не использовался т.к он крутится не от привода, а от поступления сырья под давлением. "Цепочка" - вы имеете ввиду Нетворк?
Re: Как передать значение из меркерного слова в перефирийное
Ошибка.phantom писал(а):Помогите определить, скорее всего на косвенной адресации сделано, написано в STL.mr_Frodo писал(а):Если сделано на косвенной адресации, то пока не перелопатите все программу ничего не найдёте.
Здесь проект https://cloud.mail.ru/public/k7NN/3VC9MhfwF
Вот моя подпись...
Re: Как передать значение из меркерного слова в перефирийное
переслал в сообщения
Re: Как передать значение из меркерного слова в перефирийное
Узел 70 считывается в FB110 - NW8
Вот моя подпись...
Re: Как передать значение из меркерного слова в перефирийное
да, спасибо.mr_Frodo писал(а):Узел 70 считывается в FB110 - NW8
значит FC24 за другое отвечает.
POV писал(а):Возможно энкодер 70 читался бы FC24, цепочка 2, запись цепочка 6, но FC24 вроде не вызывается и адреса проверить не получилось.
Re: Как передать значение из меркерного слова в перефирийное
Интересно FB411 работает на косвенной адресации, а в OB1 вызывается CALL, а не UC или CC
Re: Как передать значение из меркерного слова в перефирийное
А при чем тут?phantom писал(а):Интересно FB411 работает на косвенной адресации, а в OB1 вызывается CALL, а не UC или CC
Цитата из хелпа:
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.