SIEMENS, DF&PD

Предыдущее посещение: Вс июл 10, 2016 17:35 Текущее время: Вс июл 10, 2016 17:35

Часовой пояс: UTC + 3 часа




 [ Сообщений: 16 ] 
Автор Сообщение
 Заголовок сообщения: Локальные данные при создании FB FC Step 7
СообщениеДобавлено: Пт янв 25, 2013 17:33 
Не в сети
Начинающий писатель

Зарегистрирован: Пн мар 19, 2012 12:46
Сообщения: 68
Помогите пожалуйста разобраться.
Как работают переменные, описанные в локальных переменных FC?
Создал новый FC Объявил несколько переменных в разделе TEMP.
После загрузки этой функции в контроллер, некоторые из этих TEMP сразу устанавливаются в "1".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 25, 2013 18:52 
Не в сети
Писатель со стажем

Зарегистрирован: Вт мар 01, 2005 12:10
Сообщения: 592
инициализировать (назначать) в самих блоках перед использованием...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 26, 2013 15:39 
Не в сети
Начинающий писатель

Зарегистрирован: Пн мар 19, 2012 12:46
Сообщения: 68
В самих блока, в таблице верхней части экрана, я их описываю. Если Вы об этом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 26, 2013 16:58 
Не в сети
Написал больше чем Вы читали

Зарегистрирован: Ср июл 07, 2010 0:27
Сообщения: 1230
Откуда: ООО Фирма "КГПА"
AnrikD писал(а):
В самих блока, в таблице верхней части экрана, я их описываю. Если Вы об этом.
Не об этом!
Инициализировать значит присваивать значение: х:=0


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 26, 2013 18:40 
Не в сети
Начинающий писатель

Зарегистрирован: Пн мар 19, 2012 12:46
Сообщения: 68
А если в LAD???? Я, честно говоря, вообще не могу понять о какой инициации идет речь??? Почему эти переменные вообще стоят в "1"????
От куда они получают эти единицы ???


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 26, 2013 19:30 
Не в сети
Известный Писатель

Зарегистрирован: Пн ноя 15, 2010 6:41
Сообщения: 322
Откуда: Томск
Вопросы возникают из-за незнания - что же это за временные переменные. Тут можно посоветовать учиться, учиться и учиться (с) Или Бергера читать.
Подсказка - временные переменные нельзя использовать для хранения данных. Только для промежуточных переменных.

Вот тут обсуждалось такое же недопонимание: http://iadt.siemens.ru/forum/viewtopic. ... highlight=


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 26, 2013 19:33 
Не в сети
Это точно не человек

Зарегистрирован: Чт фев 16, 2006 12:27
Сообщения: 7515
Откуда: Украина
Значения этих (временных) переменных могут быть какими угодно в начале выполнения блока. Такова особенность, об этом написано в документации, так решили разработчики (это по поводу вопроса "почему так?"). Поэтому перед использованием во временные переменные надо записать начальные значения - проинициализировать. Т.е. первой операцией с такими переменными обязательно должна быть операция записи.

P.S. При описании параметров блока для временных переменных нельзя задать начальное значение - это можно сделать только в коде блока. Это должно было натолкнуть на мысль о правильном использовании предмета обсуждения.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб янв 26, 2013 19:41 
Не в сети
Начинающий писатель

Зарегистрирован: Пн мар 19, 2012 12:46
Сообщения: 68
Maksim.Rakshin писал(а):
Вопросы возникают из-за незнания - что же это за временные переменные. Тут можно посоветовать учиться, учиться и учиться (с) Или Бергера читать.
Подсказка - временные переменные нельзя использовать для хранения данных. Только для промежуточных переменных.

Вот тут обсуждалось такое же недопонимание: http://iadt.siemens.ru/forum/viewtopic. ... highlight=


Спасибо за ссылку! Все стало вполне понятно!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс сен 01, 2013 20:36 
Не в сети
Известный Писатель

Зарегистрирован: Сб авг 25, 2012 8:56
Сообщения: 112
Откуда: новосибирск
А как можно увидеть значения переменных блока FC при симуляции? Язык STL.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс сен 01, 2013 20:48 
Не в сети
Писатель со стажем

Зарегистрирован: Вт мар 01, 2005 12:10
Сообщения: 592
starter_KIP писал(а):
А как можно увидеть значения переменных блока FC при симуляции? Язык STL.


вставьте в любом нужном месте, что-то типа -

L In1
A In2
L Temp3
A Temp4
....

и смотрите на здоровье )


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс сен 01, 2013 21:19 
Не в сети
Известный Писатель

Зарегистрирован: Сб авг 25, 2012 8:56
Сообщения: 112
Откуда: новосибирск
Т.е смотреть через аккумуляторные регистры? А не изменяя код, ну типа через таблици никак?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс сен 01, 2013 21:25 
Не в сети
Писатель со стажем

Зарегистрирован: Вт мар 01, 2005 12:10
Сообщения: 592
starter_KIP писал(а):
а не изменяя код, ну типа через таблици никак?


да, если STL - то через регистры и флаги

не вижу проблем с изменением кода в копии проекта, тем более при тестировании на симуляторе.

а так - входа выхода смотрятся там где они привязаны снаружи, можно через VAT, темповые переменные там где они используются внутри блока

таблиц для просмотра темпов в FC как и в FB и OB нету


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс сен 01, 2013 21:44 
Не в сети
Известный Писатель

Зарегистрирован: Сб авг 25, 2012 8:56
Сообщения: 112
Откуда: новосибирск
komatic писал(а):

да, если STL - то через регистры и флаги


А в SCL как это можно сделать? И вообще, у СИМАТИКА есть нормальные средства отладки?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс сен 01, 2013 21:50 
Не в сети
Писатель со стажем

Зарегистрирован: Вт мар 01, 2005 12:10
Сообщения: 592
вставляете

TempVar1:=TempVar1;

и мониторите,

но обычно и так видно, даже если длинное выражение - SCL покажет все значения переменных в выражении.

а что такое для вас нормальные средства отладки?
есть мониторинг выполнения, есть пошаговое выполнение, есть точки останова - что еще можно придумать?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс сен 01, 2013 21:58 
Не в сети
Известный Писатель

Зарегистрирован: Сб авг 25, 2012 8:56
Сообщения: 112
Откуда: новосибирск
Немного всторону:
Если SCL позволяет писать более читабельный код, то почему достаточно много кода пишется на STL?
Может у STL есть то чего нет у SCL?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс сен 01, 2013 22:13 
Не в сети
Писатель со стажем

Зарегистрирован: Вт мар 01, 2005 12:10
Сообщения: 592
как ассемблер и паскаль, один гибкий и потенциально генерирующий код меньшего размера и более быстрый (при правильном использовании), другой хорошо читаемый и соответственно легче сопровождаемый, каждый хорош для своей области и своих задач.

в STL, например, есть возможность работы непосредственно с адресными регистрами и значит более широкие возможности применения косвенной адресации.

в SCL, очень хороши мат.операции и работа с массивами.

выбирать что лучше бессмысленно, нужно просто использовать нужный язык в нужном месте.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
 [ Сообщений: 16 ] 

Часовой пояс: UTC + 3 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group