SIEMENS, DF&PD

Предыдущее посещение: Сб июл 09, 2016 10:19 Текущее время: Сб июл 09, 2016 10:19

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




 [ Сообщений: 41 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Обнаружение + фронта сигнала
СообщениеДобавлено: Вт ноя 01, 2011 14:16 
Не в сети
Начинающий писатель

Зарегистрирован: Вт фев 15, 2011 13:51
Сообщения: 88
Вроде все правильно сделал, но все работает как будто это ---(Р)---- и нет совсем... Жму на панели резет бит и он попер у меня считать от 0 до 4000, по справке он должен считать только один раз, пока еще одной смены сигнала не будет. Сижу второй час и не пойму где я ошибся, может кто подкинет идею... (Pos_Edge = TEMP)
Спасибо



Изображение

Uploaded with ImageShack.us


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

Зарегистрирован: Пн ноя 15, 2010 6:41
Сообщения: 322
Откуда: Томск
Если это FB, то запихайте фронт в STAT. Если FC, то используйте внешнюю переменную.


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

Зарегистрирован: Пт июн 25, 2010 13:15
Сообщения: 229
Maksim.Rakshin прав. Набранная вами схема прекрасно работает. Единственное что я добавил что бы шел счет это переприсваивание
archive_counter_in := archive_counter_out;


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

Зарегистрирован: Вт фев 15, 2011 13:51
Сообщения: 88
Maksim.Rakshin писал(а):
Если это FB, то запихайте фронт в STAT. Если FC, то используйте внешнюю переменную.

Максим, в хелпе степ7 я не нашел такой зависимости, она точно есть? или это ваши наблюдения?


На меркер поставил, работает. Потом удалил, создал новую временную и опять работает.. Чтот непонятно...
Ведь по идее если одна переменная и я ее использую для определения фронта, то все должно быть хорошо. Думал перекрываются области (что не может быть), и потому я создал ток новый TEMP....

Егор, а насчет переприсваивания я не понял, у меня и так работает, зачем еще добавлять эту строку?


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

Зарегистрирован: Пт июн 25, 2010 13:15
Сообщения: 229
хранение бита фронта допустимо только в области постоянного хранения(меркеры иди ДБ). То что у вас когда то работало с темп переменными это просто удача - временная. Темп переменные хранятся в области L стека. при вызове блоков под них выделяется определенная область. если никому более не потребовалась эта область (нет блоков при вызове которых затрагивается эта область) то данные не перезаписываются и у вас все работает. В противном случае другие блоки могут записать туда все что угодно и тогда программа будет вести себя неадекватно как у вас и вышло

Строку добавил потому что ваш код прибавляет к переменной _in 10 по фронту сигнала и на выходе _out. А если _in остается неизменным то будут постоянные числа на входе и выходе. И непоянтно почему у вас числа разные 230, 10, 240. 1536???


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

Зарегистрирован: Чт окт 20, 2011 19:16
Сообщения: 184
Откуда: Украина, Харьков
Полностью поддерживаю Егора, для -(Р)- позитивного фронта нельзя использовать переменную из локального стека, необходим меркер или переменная из DB. Если этот Network находится в FB, а, по-видимому, так оно и есть, то создайте переменную в области данных STAT, обновите ваш iDB и будет Вам счастье:)


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

Зарегистрирован: Ср мар 03, 2010 12:59
Сообщения: 698
Откуда: Одесса
по моему достаточно было камента одного Maksim.Rakshin :)


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

Зарегистрирован: Чт окт 20, 2011 19:16
Сообщения: 184
Откуда: Украина, Харьков
fatman писал(а):
по моему достаточно было камента одного Maksim.Rakshin :)


по-видимому, нет:) потому как:
Цитата:
Думал перекрываются области (что не может быть), и потому я создал ток новый TEMP....


посему последовали более убедительные разъяснения, что и почему from Худанов Егор:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 02, 2011 6:46 
Не в сети
Начинающий писатель

Зарегистрирован: Вт фев 15, 2011 13:51
Сообщения: 88
Ясно, спасибо. Переделаю на меркеры.

ЗЫ: это FC, а значения почему на скрине разные я не знаю)), когда все заработало, то все как надо отображается


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

Зарегистрирован: Вт фев 15, 2011 13:51
Сообщения: 88
Поменял сейчас на меркеры, ставил разные свободные биты, и все равно один раз нажимаю считать, а он начинает крутить до бесконечности, то есть число опять быстро растет.


С ДБ тоже самое, ставлю обратно на ТЕМП, и все таже бесконечность), вообщем интересно)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 02, 2011 10:23 
Не в сети
Начинающий писатель

Зарегистрирован: Вт фев 15, 2011 13:51
Сообщения: 88
Где ошибка непонятно....
Может у кого будет немного свободного времени и он посмотрит прогу:
Schetc_1.zip


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 02, 2011 11:10 
Не в сети
Известный Писатель

Зарегистрирован: Пт июн 25, 2010 13:15
Сообщения: 229
Я бы вам советовал прослушать курсы по программированию или почитать Бергера.
детально в программе не копался, но первое что бросается в глаза вы проигнорировали то что мы вам сказали. Меркеры вы конечно в свою функцию затащили, но формально через "IN" параметры. Сохранение фронта означает запись в эту переменную, а не только чтение. Меркеры должны быть переданы в вашей функции хотя бы как IN_OUT.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 02, 2011 11:12 
Не в сети
Писатель со стажем

Зарегистрирован: Ср мар 03, 2010 12:59
Сообщения: 698
Откуда: Одесса
а еще правильнее таки использовать STAT-область и перенести свой #Pos_edge2 в STAT-ы, что даст тот же ожидаемый эффект


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 02, 2011 13:16 
Не в сети
Начинающий писатель

Зарегистрирован: Вт фев 15, 2011 13:51
Сообщения: 88
Спасибо за терпение, парни, хотел бы попросить прощения за неграмотность, Бергера читаю, но все пока не запоминается, практически с сименсом только со 2го сентября занимаюсь...
Егор, я действительно изменил на IN/OUT и все заработало. У меня FC, поэтому немного попозже создам какой нить FB и потренируюсь, потому STAT не мог использовать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 02, 2011 14:17 
Не в сети
Писатель со стажем

Зарегистрирован: Ср мар 03, 2010 12:59
Сообщения: 698
Откуда: Одесса
FB будет требовать создания instance DB. имей это в виду


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 02, 2011 14:44 
Не в сети
Начинающий писатель

Зарегистрирован: Вт фев 15, 2011 13:51
Сообщения: 88
fatman писал(а):
FB будет требовать создания instance DB. имей это в виду

это я знаю, спасибо)


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

Зарегистрирован: Вт фев 15, 2011 13:51
Сообщения: 88
Только не бейте, еще один вопрос. Создаю простой счетчик, который считает только вверх в функции... Затем кидаю на разные входа в контроллере и разные области данные для считывания и записи. Но при появлении лог. 1 на любом входе он считает всё и первый счетчик и второй. Где-то опять misunderstandings. даже на овене с первого раза получилось, а тут какой то странный нюанс

Изображение

Uploaded with ImageShack.us


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 02, 2011 15:22 
Не в сети
Известный Писатель

Зарегистрирован: Пн ноя 15, 2010 6:41
Сообщения: 322
Откуда: Томск
Присвоение переменной из дб как бы тоже по фронту проводите)


Последний раз редактировалось Maksim.Rakshin Ср ноя 02, 2011 15:30, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 02, 2011 15:27 
Не в сети
Известный Писатель

Зарегистрирован: Пт июн 25, 2010 13:15
Сообщения: 229
опять такая же ошибка. Вы в FC4 постоянно "МУСОР" из temp_count записываете на выход.
Одна гадит - вторая хавает


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср ноя 02, 2011 15:35 
Не в сети
Писатель со стажем

Зарегистрирован: Ср мар 03, 2010 12:59
Сообщения: 698
Откуда: Одесса
раз задумал множественные вызовы одной функции с разными параметрами, то все-таки придется использоваться FB вместо FC с манипулированием STAT-областью, иначе вот такие вот будут "нюансики", избежать которые - это городить несколько более витиваетый код, чем простое использование instance DB
ЗЫ: мне вспомнилась старая програмиская хохма типа
у Маши было три яблока, она отдала одно Пете. Сколько яблок стало у Пети? Одно? А вот и хрен вам, так как неизвестно, сколько было яблок перед этим у Пети. Вывод: обнуляйте переменные перед использованием


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
 [ Сообщений: 41 ]  На страницу 1, 2, 3  След.

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


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

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


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

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