Segnetics

Вернуться   Segnetics > Форум Segnetics > Связь с внешним миром

Связь с внешним миром Modbus, RS232, RS485, Lon и другое.

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.11.2010, 16:37   #1
dmd
Новичок
 
Регистрация: Nov 2010
Сообщения: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Question Слить ARRAY из SMH2010

Контроллер SMH2010
На нём, в SMLogix, реализовано управление технологическим оборудованием. В процессе работы в ARRAY(int) пишутся некие данные, около 1000 записей.

Есть задача, по окончании работы, вычитать из контроллера эти данные и сохранить их на компьютере.

Эта задача реализуема? Если да, каким образом. Есть какое-нибудь howto?
dmd вне форума   Ответить с цитированием
Старый 30.11.2010, 16:51   #2
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 023
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Слить ARRAY из SMH2010

Цитата:
Сообщение от dmd
Контроллер SMH2010
На нём, в SMLogix, реализовано управление технологическим оборудованием. В процессе работы в ARRAY(int) пишутся некие данные, около 1000 записей.

Есть задача, по окончании работы, вычитать из контроллера эти данные и сохранить их на компьютере.

Эта задача реализуема? Если да, каким образом. Есть какое-нибудь howto?
Реализуема. Задача разбивается на несколько:

1) Запись информации в ARRAY - это у вас есть.

2) Чтение информации из ARRAY

3) Передача на компьютер (протокол)

4) Обработка на компьютере

Далее разбиваете на подзадачи, подгоняя к вашим требованиям и выбираете способ (протокол) передачи и метод синхронизации между задачами и внутри задач.

Программируете.

Всё.

PS. Блочного чтения в наших контроллерах нет.


.


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 30.11.2010, 18:31   #3
dmd
Новичок
 
Регистрация: Nov 2010
Сообщения: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Слить ARRAY из SMH2010

Цитата:
Сообщение от Arsie
1) Запись информации в ARRAY - это у вас есть.

2) Чтение информации из ARRAY

3) Передача на компьютер (протокол)

4) Обработка на компьютере
вопрос был именно о пунктах 2 и 3.

протокол modbus. блочного чтения нет. адресуются только modbus-переменные, среди которых array нет.

получается, что единственный способ -- читать поэлементно данные из array в modbus-переменную, которую запрашивать из контроллера функцией 04 Read Input Registers.

я всё верно понял?
dmd вне форума   Ответить с цитированием
Старый 01.12.2010, 15:03   #4
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 023
Благодарил(а): 15 раз(а)
Поблагодарили: 655 раз(а) в 599 сообщениях
По умолчанию Ответ: Слить ARRAY из SMH2010

Цитата:
Сообщение от dmd
вопрос был именно о пунктах 2 и 3.

протокол modbus. блочного чтения нет. адресуются только modbus-переменные, среди которых array нет.

получается, что единственный способ -- читать поэлементно данные из array в modbus-переменную, которую запрашивать из контроллера функцией 04 Read Input Registers.

я всё верно понял?

Схема передачи массива со внутренней синхронизацией.

Исходные данные:

а) Передача массива исключительно целиком

б) Внешний строб начала передачи

в) Во время передачи память свободна от операций чтения/записи (рабочий цикл основного алгоритма закончен)

Исходя из поставленной задачи выбираем:

- метод чтения из памяти - без синхронизации по готовности

- метод передачи - единый блок на единицу данных, синхронизация внутренняя

- метод остановки передачи - по окончанию передачи всего массива

Задача "передача данных" в данных условиях делится на подзадачи:

Система управления передачей, состоящая из схемы сброса в исходное состояние (2) и схемы разрешения передачи (1)

(3) Тактовый и адресный генераторы

(4) Счётчик адреса

(5) Схема синхронизации потока

Подзадачи выделены на картинке серыми рамками под своими номерами.

Итого, программа состоит из:

1) Схема разрешения передачи обеспечивает запуск передачи и её останов по достижению счётчиком верхней границы массива

2) Схема сброса отключает адресный счётчик и приводит в исходное состояние схему синхронизации в то время, когда массив не передаётся

3) Т.к. выбран метод счения из памяти без синхронизации, то тактовый и адресный генераторы представляют собой единый узел. Блок AND обеспечивает функцию управления генератором (запуск/останов), блок NOT является собственно генератором импульсов

4) Счётчик обеспечивает перебор массива от 0 до 9, т.е. всего 10 ячеек

5) Схема синхронизации потока обеспечивает чёткое соответствие между сигналом данных и сервисными сигналами. Т.е. синхронизирует их во времени

Ограничения, наложенные алгоритмом:

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

б) На передачу одного элемента массива тратится 2 цикла системы

в) Чтение данных должно выполняться групповым запросом (т.е. блочно), иначе возможна рассинхронизация потока. Для обеспечения этой возможности все сигналы имеют единый формат. Частота опроса переменных контроллера должна быть не менее двухкратной частоте работы программы. Т.е. если программа выполняется за 100 мсек, то опрос переменных должен происходить каждые 50 мсек

Описание работы:

A) При нажатии кнопки "1" управляющий D-триггер #1 переключается в единицу, чем обеспечивает включение тактового генератора и отключение (через блок NOT #3) сигнала сброса со счётчика CNTR(16) #6 и синхронизирующих триггеров RS #5 и ^REG(int) #8

B) С выхода блока AND #2 единица подаётся на вход "start rd" блока памяти ARRAY(int) #9, чем вызывает чтение ячейки массива по нулевому адресу

C) Инвертор NOT #4 обеспечивает отключение блока AND #2 и пропадание сигнала на чтение из блока памяти

D) После пропадания сигнала на чтение из блока памяти инвертор NOT #4 обеспечивает включение триггера начала передачи RS #5, также он осуществляет тактирование синхронизирующего триггера ^REG(int) #8 и счётчика CNTR(16) #6

E) В этот момент первый блок данных сформирован: ПЕРЕДАЧА=1, АДРЕС=0, ДАННЫЕ="xxxxx"

E1) Переменная "ПЕРЕДАЧА" принимает значение "1", показывая внешнему серверу, что инициирована передача данных

E2) Переменная "Адрес" принимает значение "0", показывая внешнему серверу, что происходит чтение нулевого элемена массива

E3) Переменная "Данные" в это время уже содержит действительные данные нулевой ячейки массива

F) Далее инвертор NOT #4 вызывает очередное переключение тактового генератора: всё повторяется с шага (B) ещё девять раз

G) После того как счётчик CNTR(16) #6 досчитал до 9 очередное переключение генератора вызывает появление "1" на выходе переполнения счётчика. Этот сигнал поступает на сброс управляющего D-триггера #1 и переводит его в исходное (нулевое) состояние. "0" с выхода триггера активирует сигнал сброса счётчика CNTR(16) #6 и синхронизирующих триггеров RS #5 и ^REG(int) #8 посредством блока NOT #3

H) Система закончила работу и ожидает новое нажатие кнопки "1" контроллера
Миниатюры
Нажмите на картинку для увеличения

Название:  Со встроенной синхронизацией.PNG
Просмотров: 165
Размер:  27.0 Кбайт  
Вложения
Тип файла: psl Со встроенной синхронизацией.psl (9.0 Кбайт, 81 просмотров)
Тип файла: avi Со встроенной синхронизацией.avi (436.5 Кбайт, 89 просмотров)


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

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie сейчас на форуме   Ответить с цитированием
Старый 01.12.2010, 23:00   #5
dmd
Новичок
 
Регистрация: Nov 2010
Сообщения: 3
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: Слить ARRAY из SMH2010

Цитата:
Сообщение от Arsie
Схема передачи массива со внутренней синхронизацией
спасибо за развёрнутый ответ. мысль ясна
dmd вне форума   Ответить с цитированием
Ответ

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

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SMH2010 и Ethernet Roll4Repairs Вопросы о SMH2010 2 03.07.2017 14:36
Поговорим о быстродействии контроллеров Arsie Библиотека 2 18.07.2016 18:36
SMH2010 в режиме мастер с одним COM (нет решения) Scorpio Вопросы о SMH2010 1 04.07.2014 13:25
Удалённое чтение дисплея SMH2010 Arsie Библиотека макросов 2 24.07.2013 11:34
Smh2010. Din 230v Ac SMH Вопросы о SMH2010 4 02.12.2009 12:47


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


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