1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

копирование данных из DB в DB

ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)

Модератор: Глоб.модераторы

Ответить

Автор темы
sv_Antonio
здесь недавно
здесь недавно
Сообщения: 12
Зарегистрирован: 30 авг 2016, 10:36
Имя: Самарин Антон
Страна: Россия
город/регион: Свердловская область
Благодарил (а): 1 раз

копирование данных из DB в DB

Сообщение sv_Antonio »

Всем доброго времени суток!
Помогите разобраться с программой копирования данных из одного DB в другой DB (TIA Porlal v13, контроллер S7-313C SIEMENS). В общем принцип понятен, не понятна команда в 35-й строчке. Для чего нужен этот сдвиг?
FC122_1.jpg
FC122_2.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя

izhidkov
частый гость
частый гость
Сообщения: 404
Зарегистрирован: 25 фев 2016, 12:18
Имя: Жидков Игорь Алексеевич
Страна: РФ
город/регион: Королев/Фрязино
Благодарил (а): 4 раза
Поблагодарили: 12 раз

копирование данных из DB в DB

Сообщение izhidkov »

сдвиг на 3 это быстрое умножение на 8. Т.о. быстро формируются адреса для считывания/записи переменных из db в цикле.
Если бы видеть структуру копируемых DB было бы проще понять что там происходит.
Компилятор - лучший друг человека!

Автор темы
sv_Antonio
здесь недавно
здесь недавно
Сообщения: 12
Зарегистрирован: 30 авг 2016, 10:36
Имя: Самарин Антон
Страна: Россия
город/регион: Свердловская область
Благодарил (а): 1 раз

копирование данных из DB в DB

Сообщение sv_Antonio »

Про умножение понятно. Просто получается, что в таком случае бОльшая часть данных не копируется (пропускается). Прикладываю DB (копирование происходит из DB35 в DB11).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя

Marrenoloth
завсегдатай
завсегдатай
Сообщения: 524
Зарегистрирован: 05 окт 2009, 11:51
Имя: Тихомиров Дмитрий Викторович
Страна: Россия
город/регион: Москва
Благодарил (а): 17 раз
Поблагодарили: 20 раз

копирование данных из DB в DB

Сообщение Marrenoloth »

sv_Antonio писал(а): не понятна команда в 35-й строчке
Это перевод адреса в формате инта/ворда в формат pointer - там первые 3 бита - это адрес бита, а выше - адрес байта. Только сдвиг не правильный, т.к. поинтер занимает (в этом случае) четыре байта, а не два. Т.е. там должен быть SLD 3 - сдвиг дворда, а ворда. Хотя, если объемы DB меньше 4096 байт, то прокатит. Ну а дальше это передается в Tag_42 и далее используется в квадратных скобках с интерпретацией как поинтер.

Автор темы
sv_Antonio
здесь недавно
здесь недавно
Сообщения: 12
Зарегистрирован: 30 авг 2016, 10:36
Имя: Самарин Антон
Страна: Россия
город/регион: Свердловская область
Благодарил (а): 1 раз

копирование данных из DB в DB

Сообщение sv_Antonio »

Благодарю за разъяснения.

Автор темы
sv_Antonio
здесь недавно
здесь недавно
Сообщения: 12
Зарегистрирован: 30 авг 2016, 10:36
Имя: Самарин Антон
Страна: Россия
город/регион: Свердловская область
Благодарил (а): 1 раз

копирование данных из DB в DB

Сообщение sv_Antonio »

Доброго времени суток.
Данный вопрос возник в следующей ситуации - на некотором станке необходимо стало изменить режим работы (в меню визуализации данный пункт предусмотрен). Изменение не удалось - панель оператора "не принимает" новое значение, более того - после таких попыток станок начинает работать "не адекватно" (видимо сбиваются другие параметры рецепта). В процессе выяснил:
1. панель оператора записывает данные в DB35 (сразу после изменения на ОП)
2. из DB35 с помощью FC данные копируются в DB соответствующий номеру рецепта
3. от туда с помощью другой FC копируется в DB35 (видимо для сохранения данных после выкл. питания и отображения текущих уставок на ОП)
4. из DB №рецепт данные копируются (с помощью ещё одной FC) в DB2 (с этим DB непосредственно работает исполняющая программа)
5. при просмотре в ONLINE режиме видно что в DB35 данные соответствующие нужному режиму не меняются (на экране визуализации выполнено в виде символического поля ввода-вывода, соответствующие значения им от 0 до 3)
6. другие параметры рецепта изменяются (в DB35 при просмотре в ONLINE режиме)
Вопросы:
1. Можно ли выгрузить проект из панели и просмотреть его?
2. При подключении в ONLINE режиме к ОП что там можно посмотреть?
3. Имеется в наличии контроллер, но нет панели. Можно ли залить этот проект в контроллер, а визуализацию запустить на компе? (правда у контроллера есть только MPI). Либо одновременно запустить симулятор контроллера и панели, но как сделать чтобы они "видели" друг друга?
P.S. контроллер S7-313C, панель оператора TP700 Comfort, проект выполнен в TIA PORTAL v12.

Автор темы
sv_Antonio
здесь недавно
здесь недавно
Сообщения: 12
Зарегистрирован: 30 авг 2016, 10:36
Имя: Самарин Антон
Страна: Россия
город/регион: Свердловская область
Благодарил (а): 1 раз

копирование данных из DB в DB

Сообщение sv_Antonio »

Проблема оказалась в "некорректной" программе залитой в панель оператора.
Отвечаю на свои вопросы:
1. выгрузить можно, посмотреть - нет.
2. -
3. можно одновременно запустить симуляторы (точнее сначала симулятор ПЛК, потом панели)
Ответить

Вернуться в «Simatic TIA Portal»