Как устанавливаются биты?

Инженерное программное обеспечение
nicss
Любитель
Сообщения: 71
Зарегистрирован: 28 сен 2016, 13:55

Как устанавливаются биты?

Сообщение nicss »

Добрый день. Есть еще вопрос.
Упрощенно: есть небольшая линия, состоящая из 3 машин - 3 контроллера - 3 программы, объединенные в один проект.
Нужно объяснить "продвинутому лузеру" как при установке бита (например) DB104 DBX1.3 в программе машины 2, устанавливается и бит DB104 DBX11.3 в программе машины 3 (со сдвигом на 10). Все эти DB по 20 байт, первые 10 названы "передача данных", последние 10 - "прием данных".

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Как устанавливаются биты?

Сообщение Михайло »

1. "Продвинутый лузер" - это кто-то из коллег? Сами разбираетесь?
2. Используются функции PUT/GET для обмена данными между ЦПУ?

Marrenoloth
Дилетант
Сообщения: 7
Зарегистрирован: 26 июл 2016, 23:12

Re: Как устанавливаются биты?

Сообщение Marrenoloth »

Немножко флуда: Может, всё-таки, "продвинутому ламеру"? Нюанс, как говорится. :D
Варианта два: Или через обменные сигналы (Реле между выходом одного контроллера и входом другого). Или через общую сеть (Тут надо понять, есть ли у них физически общая сеть и, если есть, искать примеры на сайте сапорта Сименса - там тысячи их).

nicss
Любитель
Сообщения: 71
Зарегистрирован: 28 сен 2016, 13:55

Re: Как устанавливаются биты?

Сообщение nicss »

Михайло писал(а):1. "Продвинутый лузер" - это кто-то из коллег? Сами разбираетесь?
2. Используются функции PUT/GET для обмена данными между ЦПУ?
1. Нет, это скорее я по отношению к коллегам (в плане сименса)
2. Скорее всего Вы правы (везде есть SFB14,15), просто ничего не знал (и не знаю собственно) про них. Продолжу в понедельник,
так как дома ничего не устанавливал, дабы не путать отдых с работой.

nicss
Любитель
Сообщения: 71
Зарегистрирован: 28 сен 2016, 13:55

Re: Как устанавливаются биты?

Сообщение nicss »

Добрый вечер. Ну как я понял SFB14,15 пересылают первые 10 байт DB в последние 10 байт DB другого контроллера и наоборот.
Номера DB взяты одинаковые (для удобства наверно). Но у меня SFB "под замочком". Можно ли их как-то разблокировать, дабы посмотреть
параметры блоков и что им присвоено?

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Как устанавливаются биты?

Сообщение Михайло »

Системные блоки SFB всегда под замочком. Они делают то, что они делают. Описание работы блоков можно найти в справке Степ7.

nicss
Любитель
Сообщения: 71
Зарегистрирован: 28 сен 2016, 13:55

Re: Как устанавливаются биты?

Сообщение nicss »

А как же их программируют?
В смысле, вот я открываю первый раз проект. Вижу SFB14,15. Как мне узнать что куда передается?

Аватара пользователя
mr_Frodo
Профессионал
Сообщения: 588
Зарегистрирован: 22 июл 2016, 20:38

Re: Как устанавливаются биты?

Сообщение mr_Frodo »

Нажимаете F1 и... О, чудо!!! :D
Вот моя подпись...

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Как устанавливаются биты?

Сообщение Михайло »

nicss писал(а):В смысле, вот я открываю первый раз проект. Вижу SFB14,15. Как мне узнать что куда передается?
Ну вот Вы видите "квадратик" PUT SFB15, у этого "квадратика" слева на входе всякие числа и даже логические цепочки - по сути это и есть настройки передачи данных. Скриншот не помешал бы!
Если выделить квадратик и нажать F1 - вылезет инструкция по этому блоку.

nicss
Любитель
Сообщения: 71
Зарегистрирован: 28 сен 2016, 13:55

Re: Как устанавливаются биты?

Сообщение nicss »

Нашел.
Изображение

Расшифруйте пожалуйста.
(Что-то ступил я . Думал SFB сами по себе исполняются в конце программы, а не вызываются. И программируются "внутри себя".)

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Как устанавливаются биты?

Сообщение Михайло »

Функциями PUT/GET организуется обмен данными между любыми процессорами (ЦПУ) серии S7. Только между своими родными процессорами!

Функция PUT (SFB15)
ADDR_1 - "куда положить" (адрес в памяти ЦПУ-партнера). Например, P#DB106.DBX10.0 WORD 5 - здесь "WORD 5" означает передачу пяти слов. "P#" - это символ указателя. Если не знаешь, что это такое, то просто запомни, что надо писать эту штуку перед любым адресом в функции PUT и точка.
SD_1 - "откуда взять" (адрес на этом ЦПУ, на котором исполняется программа)
REQ - это условие запуска процесса передачи; тут надо понять, что передача данных и обработка программы работают асинхронно на разных процессорах - программа обрабатывается на основном процессоре, передача данных - на коммуникационном процессоре. Асинхронная работа - это значит, что за один цикл обработки программы на основном процессоре коммуникационный процессор допустим успевает передать, допустим, 3,73 пакета в сеть Profinet или Profibus. Стоит вопрос синхронизации. Функция PUT лишь организует временный мостик между процессорами, по сигналу REQ. При чем важно: передача команды PUT ("положи") производится по фронту сигнала REQ и после этого уже остановить коммуникационный обмен уже невозможно.
ID - идентификатор передачи данных, идентификатор должен быть уникальным числом 1, 2, 3, ... во избежание путаницы при множественной передаче всяких данных.

DONE - "сделано" - это уже сигнал обратной связи с коммуникационного процессора. Соответственно, сразу после загрузки коммуникационного процессора новым заданием сигнал DONE устанавливается в 0. При выполнении задания устанавливается 1. Если попытаться дать новое задание с помощью подачи фронта REQ при занятом коммуникационном процессоре (DONE=0), то новый сигнал REQ не будет принят. Поэтому правильнее всего сигнал REQ блокировать инверсией сигнала DONE, во избежание таких "холостых выстрелов".
ERROR - "ошибка" - задание может выполнено успешно (ERROR=0) или с ошибкой (ERROR=1). Код ошибки можно прочитать в параметре STATUS (число от 0 до 65535), расшифровать код ошибки можно по справочнику функции PUT. Ошибки могут быть разными - элементарно оборвался кабель или выключилось питание ЦПУ-партнера.

Можно передать до четырех пачек данных (ADDR_1, ADDR_2, ADDR_3, ADDR_4, SD_1, SD_2, SD_3, SD_4) за один присест.

Аналогично работает функция GET.

nicss
Любитель
Сообщения: 71
Зарегистрирован: 28 сен 2016, 13:55

Re: Как устанавливаются биты?

Сообщение nicss »

Спасибо.
Не совсем понял про ID. Написано - идентификатор локального соединения (определен в Step7 - конфигурации).
Что-то не могу найти где посмотреть какой "номер" присвоен какому контроллеру?

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Как устанавливаются биты?

Сообщение Михайло »

S7-коммуникации настраиваются отдельно, поищи где-то в проекте в Step7. Найди номер ID, этот номер полностью определяет два ЦПУ-партнера.

nicss
Любитель
Сообщения: 71
Зарегистрирован: 28 сен 2016, 13:55

Re: Как устанавливаются биты?

Сообщение nicss »

Спасибо, разобрался.
Изображение
Соединения:
Calibra-Preformatrice - ID3
Calibra-Rullatrici - ID2
Preformatrice-Rullatrici - ID1

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Как устанавливаются биты?

Сообщение Михайло »

Братья PUT и GET относятся к S7-коммуникациям. Если есть S7, то значит удобно и просто. :)

nicss
Любитель
Сообщения: 71
Зарегистрирован: 28 сен 2016, 13:55

Re: Как устанавливаются биты?

Сообщение nicss »

Еще один вопросик.
Прочитал, что сигнал DONE = 0, когда задание либо не началось либо выполняется
DONE = 1, когда задание выполнено
Как разделить "задание не началось" и "задание выполнено". Или, другими словами, после выполнения задания DONE установится в 1, а когда сбросится назад на 0?

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Как устанавливаются биты?

Сообщение Михайло »

DONE=0 устанавливается после подачи импульса REQ. Разве нет?

nicss
Любитель
Сообщения: 71
Зарегистрирован: 28 сен 2016, 13:55

Re: Как устанавливаются биты?

Сообщение nicss »

Т.е. после выполнения, допустим записи на другой цпу, единица на DONE "висит" до прихода следующего фронта REQ?
И какой сигнал будет на DONE в первом цикле программы до вызова SFB (при включении контроллера)?

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Как устанавливаются биты?

Сообщение Михайло »

Ну как только блок готов к приему импульса на вход REQ, то DONE=1.

nicss
Любитель
Сообщения: 71
Зарегистрирован: 28 сен 2016, 13:55

Re: Как устанавливаются биты?

Сообщение nicss »

Спасибо.
Еще вопрос. Для чего (как работают) в FC119 (приведенном выше) первые 7 строк кода и последние 7 строк (по метке А1)
Вот они:

Код: Выделить всё

А1:  
      O     "StartSend"
      O     "StartRecV"
      L     S5T#5S
      SD    T    122                              //timeout
      A     T    122
      R     "StartSend"
      R     "StartRecV"
      BE    
(программистам должны нравится такие вопросы :) )

Ответить