Segnetics

Вернуться   Segnetics > Форум Segnetics > SMLogix

SMLogix Вопросы о работе в среде SMLogix и о FBD-программировании

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.02.2012, 18:05   #1
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Самописец

ктонить готов поделиться заготовкой для самописца?
типпа смш2жэ, числа со всех DI и AI пишутся в память с некой дискретностью "по кругу", по запросу - вываливаются на комп по 485му.
много хочу?


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Старый 22.02.2012, 18:18   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: самописец.

Цитата
Сообщение от LordN
ктонить готов поделиться заготовкой для самописца?
типпа смш2жэ, числа со всех DI и AI пишутся в память с некой дискретностью "по кругу", по запросу - вываливаются на комп по 485му.
много хочу?
Блоки Eeprom() - готовые "самописцы". Выход в модбас элементарен настолько что никогда не задавался целью сделать макрос в библиотеку, т.к. вспоминать где он лежит всё равно дольше, чем сделать заново


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 22.02.2012, 18:35   #3
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: самописец.

Вот, набросал один из вариантов. Пишет раз в минуту, глубина - сутки.

Надеюсь понятно, что вместо переменной "Датчик" должно быть значение с датчика?
Миниатюры
Нажмите на картинку для увеличения

Название:  Безымянный.PNG
Просмотров: 281
Размер:  12.2 Кбайт  
Вложения
Тип файла: msl q.msl (10.7 Кбайт, 93 просмотров)


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 22.02.2012, 19:00   #4
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: Самописец

что-то понятно, но есть вопросы. потом. а щас - с наступающим!


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Старый 28.02.2012, 16:15   #5
tt_asu
Новичок
 
Регистрация: Nov 2011
Сообщения: 13
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Самописец

Всем привет.
Появился вопрос по этой теме. А как потом наиболее быстро и правильно передать все эти значения массива на комп?
Неужели по одному значению передавать? Это ж долго будет, особенно если связь через интернет..
tt_asu вне форума   Ответить с цитированием
Старый 28.02.2012, 16:32   #6
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Самописец

Цитата
Сообщение от tt_asu
Всем привет.
Появился вопрос по этой теме. А как потом наиболее быстро и правильно передать все эти значения массива на комп?
Неужели по одному значению передавать? Это ж долго будет, особенно если связь через интернет..
Использовать ArrayII, но тогда циклическую запись нужно будет организовывать самостоятельно.

Индекс - это адрес последнего записанного элемента. Следующий элемент - самый ранний.

Ограничение - 2k записей.
Миниатюры
Нажмите на картинку для увеличения

Название:  Безымянный.PNG
Просмотров: 169
Размер:  23.1 Кбайт  


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 28.02.2012, 16:53   #7
tt_asu
Новичок
 
Регистрация: Nov 2011
Сообщения: 13
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Самописец

Цитата:
Сообщение от Arsie
Использовать ArrayII, но тогда циклическую запись нужно будет организовывать самостоятельно.

Индекс - это адрес последнего записанного элемента. Следующий элемент - самый ранний.

Ограничение - 2k записей.
То есть передача массива в данном примере будет идти блоками по 9 записей, получается так?
Или у ArrayII должно быть столько же выходов, сколько значений надо передать, и столько же будет и переменных для этого?
А если в массиве под 1000 значений?
Про ограничение не совсем понял.
tt_asu вне форума   Ответить с цитированием
Старый 28.02.2012, 17:15   #8
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Самописец

Цитата
Сообщение от tt_asu
То есть передача массива в данном примере будет идти блоками по 9 записей, получается так?
Увеличить количество выходов на блоке, задать на адресном счётчике увеличенное значение и подключить дополнительные модбасные меременные.


Цитата
Сообщение от tt_asu
А если в массиве под 1000 значений?
Lenght=1000; DI=999


Цитата
Сообщение от tt_asu
Про ограничение не совсем понял.
Во всей программе сумма объёмов таких массивов должна быть не больше числа 2048 - это размер окна транслятора модбаса.

Скажу даже правильнее - суммарный объём всех регистровых выходных переменных modbus (int+long+real) должна быть не более 4 килослов.

Один real занимает 4 байта, т.е. два слова. Итого 2048 переменных.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 01.03.2012, 09:41   #9
tt_asu
Новичок
 
Регистрация: Nov 2011
Сообщения: 13
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Самописец

Цитата:
Сообщение от Arsie
Использовать ArrayII, но тогда циклическую запись нужно будет организовывать самостоятельно.

Индекс - это адрес последнего записанного элемента. Следующий элемент - самый ранний.

Ограничение - 2k записей.
Спасибо, Arsie. Всё получилось.
tt_asu вне форума   Ответить с цитированием
Старый 01.03.2012, 22:20   #10
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: Самописец

как гарантированно разместить запись во внешнюю память кроме как поставить пустой блок и занять им внутреннюю


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Старый 02.03.2012, 10:34   #11
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Самописец

Цитата
Сообщение от LordN
как гарантированно разместить запись во внешнюю память кроме как поставить пустой блок и занять им внутреннюю
Других способов нет.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.

Последний раз редактировалось Arsie, 19.09.2013 в 16:07
Arsie вне форума   Ответить с цитированием
Старый 02.03.2012, 10:44   #12
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: Самописец

Цитата:
Сообщение от Arsie
Других способов нет.
жаль.. а в свойства блоков памяти добавтиь галку низзя?


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Старый 02.03.2012, 11:07   #13
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Самописец

Цитата
Сообщение от LordN
жаль.. а в свойства блоков памяти добавтиь галку низзя?
Добавить галку можно, только работать она не будет.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 02.03.2012, 11:33   #14
Max2114
Senior Member
 
Регистрация: Jun 2007
Адрес: Tyumen
Сообщения: 2 052
Благодарил(а): 20 раз(а)
Поблагодарили: 21 раз(а) в 21 сообщениях
По умолчанию Ответ: Самописец

Цитата:
Сообщение от Arsie
Добавить галку можно, только работать она не будет.
А поясните почему? Нельзя жестко и вручную адресовать ячейку памяти?

Последний раз редактировалось Arsie, 19.09.2013 в 16:07
Max2114 вне форума   Ответить с цитированием
Старый 02.03.2012, 12:34   #15
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Самописец

Цитата
Сообщение от Max2114
А поясните почему? Нельзя жестко и вручную адресовать ячейку памяти?
Да.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.

Последний раз редактировалось Arsie, 19.09.2013 в 16:07
Arsie вне форума   Ответить с цитированием
Старый 02.03.2012, 13:38   #16
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: Самописец

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

что будет если я захочу прочитать больше чем записано?

т.е. deep = 7, а я захотел прочесть по rd_offset=10


__________________
C уважением, LordN

Последний раз редактировалось Arsie, 19.09.2013 в 16:07
LordN вне форума   Ответить с цитированием
Старый 02.03.2012, 14:13   #17
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Самописец

Цитата
Сообщение от LordN
вопросы по макросу на картинке.
первый.
по иниту в блок памяти на всю глубину пишутся нули или там лежит какой-то мусор? или чтоб записалиьс нули надо весь блок в ложике ими забить?
Если в блоке есть хотя бы одно значение по умолчанию, то все ячейки, которые не описаны, будут автоматически проинициализированы нулём.


Цитата
Сообщение от LordN
что будет если я захочу прочитать больше чем записано?

т.е. deep = 7, а я захотел прочесть по rd_offset=10
Либо упрётся в максимальный адрес, либо закольцуется, либо получите последнее считанное значение. Я не помню, что именно.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 03.03.2012, 22:07   #18
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: самописец.

Цитата:
Сообщение от Arsie
Вот, набросал один из вариантов. Пишет раз в минуту, глубина - сутки.

Надеюсь понятно, что вместо переменной "Датчик" должно быть значение с датчика?
вот я записал что-то в "адрес на чтение"
через сколько тиков гарантированно можно начинать читать данные? а как узнать это они или предыдущие?


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Старый 05.03.2012, 10:22   #19
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: самописец.

Цитата
Сообщение от LordN
вот я записал что-то в "адрес на чтение"
через сколько тиков гарантированно можно начинать читать данные? а как узнать это они или предыдущие?
К сашим услугам сигнал "Syn", а записанный адрес можно пустить в обратку и контролировать.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Старый 19.03.2012, 19:49   #20
LordN
Senior Member
 
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 125
Благодарил(а): 239 раз(а)
Поблагодарили: 161 раз(а) в 153 сообщениях
По умолчанию Ответ: самописец.

Цитата:
Сообщение от Arsie
К сашим услугам сигнал "Syn", а записанный адрес можно пустить в обратку и контролировать.
всмысле - читать и если = 1, то можно читать регистры и менять индекс. так?


__________________
C уважением, LordN
LordN вне форума   Ответить с цитированием
Старый 19.03.2012, 20:02   #21
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 020
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: самописец.

Цитата
Сообщение от LordN
всмысле - читать и если = 1, то можно читать регистры и менять индекс. так?
Точно!


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать свои сообщения

BB code is Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите собрать самописец Muhomor SMLogix 15 18.10.2013 14:11
Рвутся связи между контроллерами Scorpio Связь с внешним миром 16 11.10.2013 13:33
Планирование трафика Arsie Связь с внешним миром 5 02.03.2012 12:53


Часовой пояс GMT +4, время: 06:05.


Версия vBulletin: 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Segnetics 2005 - 2023