Translate

Chinese (Simplified) English French German Ukrainian
Главная Форум
Подписаться: Подписаться на рассылку по e-mail FACEBOOK
Форум
Добро пожаловать, Гость
Привет! Вход или Регистрация.    Забыли пароль?
Программирование блоков-уставок с PC (1 просматривает) (1) Гость
Вниз Ответить Избранное: 0
Сообщения темы: Программирование блоков-уставок с PC
#670
solegstar (Пользователь)
Fresh Boarder
Постов: 19
graphgraph
Пользователь в оффлайне Кликните здесь, чтобы посмотреть профиль этого пользователя
Программирование блоков-уставок с PC 12 г., 6 мес. назад  
Добрый день. Возникла необходимость программирование блоков-уставок (как с одним значением (блок SP(53)), так и с множеством (блок SP_M(54)). Для тестирования обмена использовалась программа modbus tester. В редакторе "Альфа" была написана программа, прилагаю во вложении.

Из программы Modbus Tester посылалась последовательность байтов для установки "1" в параметре "1" блока №1 на адрес контроллера "30":

00:07 [1E][10][01][01][00][02][04][00]
08:0F [00][00][01][9A][E7]

на что блок поменял уставку на "1" и всё отработал правильно, прислав ответ:

00:07 [1E][10][01][01][00][02][13][9B]

теперь я попробовал проделать тоже самое с аналоговой уставкой. Из программы Modbus Tester посылалась последовательность байтов для установки "1" в параметре "1" блока №2 на адрес контроллера "30":

00:07 [1E][10][02][01][00][02][04][00]
08:0F [00][00][01][8E][17]

на что блок НЕ ПОМЕНЯЛ уставку, прислав ответ:

00:07 [1E][10][02][01][00][02][13][DF]

теперь я попробовал проделать тоже самое с многоканальной аналоговой уставкой. Из программы Modbus Tester посылалась последовательность байтов для установки "1" в параметре "1" блока №3 на адрес контроллера "30":

00:07 [1E][10][03][01][00][02][04][00]
08:0F [00][00][01][83][87]

на что блок НЕ ПОМЕНЯЛ уставку, прислав ответ:

00:07 [1E][10][03][01][00][02][12][23]

Теперь сам вопрос - каким образом можно запрогаммировать аналоговые уставки в блоках SP и SP_M. Последовательность байтов соответствует последовательности в руководстве по эксплуатации на МИК-51 (РЭ1). Тестовую программу для МИК-51 прилагаю.

Прикрепленный файл:
Имя файла: test.zip
Размер файла: 1040
 
Сообщение модератору   Зарегистрированный Зарегистрированный  
  Для добавления сообщений, Вы должны зарегистрироваться или авторизоваться.
#673
asu_tp (Модератор)
Модератор
Постов: 18
graphgraph
Пользователь в оффлайне Кликните здесь, чтобы посмотреть профиль этого пользователя
RE: Программирование блоков-уставок с PC 12 г., 6 мес. назад  
Исходя из Вашей программы, Вы записываете значения в свойства блоков dSET(83), SP(53) и SP_M(54).

Блок dSET(83) имеет одно свойство (dSET), значение которого имеет тип «Целое длинное». Это означает, что целое число (без запятой) представляется в виде четырех байт. Указанный Вами способ записи значения «1» в свойство этого блока ([1E] [10] [01] [01] [00] [02] [04] [00] [00] [00] [01] [9A] [E7], где [00] [00] [00] [01] – 4 байта, что представляют собой запись целого числа «1») с использованием функции 16 протокола ModBus RTU является правильным.

В отличие от dSET(83), свойства блоков SP(53) и SP_M(54) имеют тип «Вещественное» («FLOAT»). Это подразумевает иной метод представления числа в виде 4 байт, который описывается стандартом IEEE 754 (широко распространённый стандарт формата представления чисел с плавающей запятой).

Запись числа с плавающей запятой «1.000» в свойство блока SP(53) (свойство №1 блока №2 в Вашей программе) с использованием функции 16 протокола ModBus RTU в прибор, который имеет адрес №30, будет выглядеть следующим образом: [1E] [10] [02] [01] [00] [02] [04] [3F] [80] [00] [00] + 2 байта контрольной суммы. Здесь [3F] [80] [00] [00] – 4 байта, что представляют собой запись числа с плавающей запятой «1.000».

Следует учитывать, что число с плавающей запятой одинарной точности (4 байта на число), в зависимости от порядка записи байт, может быть представлено четырьмя разными способами (байты условно маркируем буквами A, B, C, и D):
1. Прямой порядок («Intel byte order») – A B C D.
2. Перестановка байт – B A D C.
3. Перестановка слов – C D A B.
4. Перестановка байт и перестановка слов («big-endian») – D C B A.

В контроллерах МИК-51 и МИК-52 используется последний способ («big-endian») порядка записи байт числа в формате «FLOAT».
 
Сообщение модератору   Зарегистрированный Зарегистрированный  
 
Последнее редактирование: 03.12.2010 16:55 Редактировал asu_tp.
  Для добавления сообщений, Вы должны зарегистрироваться или авторизоваться.
#674
solegstar (Пользователь)
Fresh Boarder
Постов: 19
graphgraph
Пользователь в оффлайне Кликните здесь, чтобы посмотреть профиль этого пользователя
RE: Программирование блоков-уставок с PC 12 г., 6 мес. назад  
Спасибо за ответ. Теперь всё стало понятно и всё работает. Про тип представления данных я не учел. Еще раз спасибо!
 
Сообщение модератору   Зарегистрированный Зарегистрированный  
  Для добавления сообщений, Вы должны зарегистрироваться или авторизоваться.
#1054
vitia12 (Пользователь)
Fresh Boarder
Постов: 6
graphgraph
Пользователь в оффлайне Кликните здесь, чтобы посмотреть профиль этого пользователя
RE: Программирование блоков-уставок с PC 10 г., 3 мес. назад  
А хіба не потрібно використовувати формулу
Порядковый номер блока*256+(1+((Номер параметра блока -1)*2))=Регистр чтения/записи свойств блока ????
 
Сообщение модератору   Зарегистрированный Зарегистрированный  
  Для добавления сообщений, Вы должны зарегистрироваться или авторизоваться.
#1056
Lukas (Модератор)
Модератор
Постов: 213
graph
Пользователь в оффлайне Кликните здесь, чтобы посмотреть профиль этого пользователя
RE: Программирование блоков-уставок с PC 10 г., 3 мес. назад  
При записі програми з середовища АЛЬФА цей перерахунок здійснюється автоматично. Для роботи ж зі СКАДА системою ця формула дозволяє визначити адрес регістра для опиту. Для прикладу, формат звернення в СКАДА системі Visual Intellect буде наступний: «3(4),адрес регістру, 1(2)», де
- 3(4) зчитування виходу функціонального блоку(зчитування/запис в властивості функціонального блоку),
- адрес регістру – розрахований по вищевказаній Вами формулі ,
- 1(2) кількість зчитуваних регістрів, залежить від типу даних, які зчитуються.
 
Сообщение модератору   Зарегистрированный Зарегистрированный  
 
Последнее редактирование: 22.02.2013 11:06 Редактировал Lukas.
  Для добавления сообщений, Вы должны зарегистрироваться или авторизоваться.
Вверх Ответить