Вход

Просмотр полной версии : мсд100 и плк



gefan
09.11.2010, 10:07
Добрый день, помогите плиз.
необходимо при разрыве соединения ПЛК и ПК записывать данные в МСД100.
как это реализовать?
есть вариант МСД100(master) -debug-(slave)ПЛК, но тогда я так понимаю нужен преобразователь интерфейсов? и как прописать какие именно регистры контроллера МСД 100 должен считывать? Или я что -то упустил?

Gans
09.11.2010, 10:26
а на пк что стоит? если скада или самоделка, то можно из компа раз в 60 сек менять состояние булевой переменой, а в контроллере проверять её с периодичностью 65 сек. если переменная не изменилась - значит связи со скадой нет!!!! а потом флажок потери связи со скадой записать в мсд100 :-)

gefan
10.11.2010, 11:13
будит стоять самоделка... вопрос в том как в мсд записать только данные в определенный момент, во время разрыва, а я понял что флажок будит указывать в архиве на те данные,которые будут поступать при разрыве соединения? или я чего то не понял..?

pt200
10.11.2010, 13:22
недавно бился с похожей проблемой.
кое как что то похожее сделал:
1) настраиваем мсд100 на опрос нужных нам данных почаще. а также настраиваем нечувствтельность этих каналов( забыл как точно этот параметр называется)( да и то там максимум 100 чегото можно поставить).
2) добавляем в мсд100 опрос еще одного регистра( триггер записи). у него чувствительность ставим 1.

теперь если надо чтобы мсд 100 записал данные, меняем значение в триггерном регистре.

P.s. решение через одно место( будут встречаться левые записи), но привильнее не придумал, а товарищи из овена нифига не посоветовали по делу.

gefan
10.11.2010, 14:05
спасибо большое попробую..мне тоже овен ничего хорошего не сказал...

gefan
11.11.2010, 11:07
простите...не могу найти как настроить чувствительность каналов...можно уточнить?

pt200
11.11.2010, 11:15
из доков
для каждого канала могут быть заданы следующие настройки.
порог архивирования – определяет величину для динамического архивирования.


вроде оно

Maximus
11.11.2010, 13:29
порог архивирования задается в настройках каналов, см. рис.

gefan
12.11.2010, 11:45
простите. а есть пример настройки соединения МСД с ПЛК через Debug? чтоб считать данные МСД в ПЛК?

Maximus
13.11.2010, 11:21
Данные с МСД считать с помощью ПЛК не получится. Точнее это будет сделать довольно сложно.
Вот описание того как это делает конфигуратор с ПК:

В двух словах рассказываю. Возможно будут неточности, но главное на
данном этапе рассказать смысл.
В МСД-100 по порту "к ЭВМ" работает ТОЛЬКО ModBus(RTU). "Поверх" этого протокола реализован алгоритм чтения содержимого карточки памяти. Именно содержимого, т.е. двоичных данных так как они есть, а не файлов. Анализ файловой структуры FAT16 производится на компьютере (что бы не загружать этой работой МСД). Я хочу сказать что компьютер читает определенные области памяти карты,
вычисляет где лежат файлы и считывает необходимое колличество байт с
карты памяти. Надеюсь хоть немного понятно.
Как это реализовано технически:
Все пространство карты памяти разбито на СЕКТОРА размером по 512 байт.
Так как по модбасу прочитать 512 байт за один запрос нельзя то был
придуман следующий прием. В МСД все пространство карты разбито на
виртуальные страницы по 128 байт (64регистра). Таким образом что бы
считать ОДИН СЕКТОР с карты нужно считать ЧЕТЫРЕ виртуальные страницы с
МСД. Это самое простое. Дальше будет сложнее. Дело в том что по
протоколу модбас адрес может быть только 16 бит (два байта). этого
хватит только на 65535 страниц по 128 байт т.е. на 8Мб. Поэтому было
введено смещение - специальный регистр который задает базовое смещение
ардеса. Номер регистра 999(адресс 998). Вес одной единицы в регистре 256
секторов(1сектор = 512 байт). Теперь имеем 65535 страниц по 256*512 байт
= 8Гб, чего вполне должно хватить, тем более что диски FAT16 не могут
быть более чем 2Гб :)
Если все вышенаписаное понятно, то переходим к следующему шагу. Для того
что бы считать сектор номер Х с карты памяти нужно:
1. Установить необходимое смещение(либо проверить что смещение которое
установлено подходит). это делается записью регистра 999 (6 или 16
функция модбаса). Прочитать регистр можно по адресу 999 функция (04
Read Input Registers). Это не описка, это действительно так. Функцией 3
прочитать регистр нельзя(почему я так сделал сейчас не помню, нужно
записи посмотреть.)
2. Прочитать 64 регистра (функция 03 Read Holding Registers) начиная с
адреса 999 + номер виртуальной страницы в текущем смещении. Т.е. начиная
с 1000 регистра в приборе реализован доступ к виртуальным страницам
карты памяти. Если смещение адреса установлено в 0 (регистр 999 = 0) то
64регистра начиная с 1000 дадут первую виртуальную страницу, с 1001
вторую, с 1003 третью и т.д.

Таким образом программа на компьютере считывает сектор за сектором,
анализирует содержимое секторов, и вычисляет адреса необходимых данных.
Расположение и содержимое секторов отвечает требованиям FAT16 (стандартное).


Если в ПЛК это реально сделать, то можете читать архивы с МСД...

gefan
15.11.2010, 09:32
спасибо большое максим!!

gefan
16.11.2010, 09:57
простите еще один вопросик, если использовать выход плк для чтоб размыкать и замыкать питание мсд100, в этом случае ,как поведет себя прибор? не возникнет ли проблем с настройками?

gefan
17.11.2010, 12:05
Подскажите,как настроить режим Spy в мсд100?может я что-то не так делаю?

pt200
17.11.2010, 12:56
Подскажите,как настроить режим Spy в мсд100?может я что-то не так делаю?
Режим настраивается в общих настройках( или как то так), а не в настройках конкретного канала.

P.S. Пытался использовать этот режим без слэйв устройства( т.е мастер посылал запросы в никуда, а МСД их перехватывал), ничего не получилось.МСД ловил какую то ерунду с редкими проблесками истины.