This is topic Помогите новичку с TCP/IP in forum Общие вопросы / Common questions at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/45/t/000145.html

Posted by Kidim1975 (Участник № / Member № 4421) on :
 
Имеется ввод данных по протоколу Modbus - TCP/IP. В источнике в настройках указывается ip адрес и все остальное - все работает. Такая проблема: источников много и их адреса еще но определены разработчиками. Можно ли как-нибудь программно ввести ip адрес из какого нибудь файла (ТХТ или XLS) и записать его в источник. Толко если можно поподробнее я новичок в работе с TM6. Заранее спасибо.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Все ip-адреса хранятся в файле ip-modbus. Он текстовый.
 
Posted by Kidim1975 (Участник № / Member № 4421) on :
 
1.Спасибо видел. А если несколько источников с разными ip адресами, то как в этом файле отличить кому какой?
2. Если экран сделан в виде всплывающего окна, как его программно вывести вперед (сделать активным)?
3. можно ли программно завершить исполнение и выключить RTC.exe? (просто как я понял можно запустить rtc с параметром /hidemenu, а как в таком случае выйти из программы?)
 
Posted by Kidim1975 (Участник № / Member № 4421) on :
 
И еще вопрос в догонку можно ли какими нибудь готовыми методами ввести данные GPS поступающие на ком порт по протоколу NMEA 0183?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. Там все увидите. Сделайте проект с несколькими адресами и посмотрите, что будет в файле.

2. Послать 2 во входное значение канала вызова Экрана.

3. Можно остановить выполнение проекта. Закрыть монитор нельзя.

4. Можно. Для этого есть назначение COM-порта GPS.
 
Posted by Kidim1975 (Участник № / Member № 4421) on :
 
Спасибо за быстрый ответ. К сожалению к нему нужны уточнения.
1. По вопросу остановки проекта, может я не очень четко описал ситуацию - проект запускается с ключами /fullscreen /hydemenu /run и естественно видно только то что я нарисовал на экране. Можно конечно заставить пользователя учить сочетания CTRL+R CTRL+F CTRL+T но это на мой взгляд программиста не очень правильное решение. Хотелось бы чтобы при нажатии на некоторую кнопочку "выход" сработало бы сразу все и CTRL+R и CTRL+F и CTRL+T, чтобы пользователю осталось только закрыть окно windows.
2. Опять моя вина, я написал "GPS" но имел в виду не совсем это. По протоколу NMEA 0183 общаются множество навигационных приборов: компасы, автопилоты, курсоуказатели и ТП. мне например нужно получить не только широту и долготу но и информацию с компаса и др устройств.
И если не очень трудно по вторму вопросу напишите немного более подробно. Заранее благодарен.
 
Posted by Kidim1975 (Участник № / Member № 4421) on :
 
Кстати я могу эту же информацию NMEA получать по TCP/IP может будет дегче подцепить ее с IP чем с ком порта? Очень нужно, помогите.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. Системная переменная @Exit
Если значение данной переменной типа OUTPUT равно 5:
при работе в WINDOWS – монитор останавливается.

Это заменяет Ctrl + R. Остальное программно сделать нельзя.

2. Нет, протокол NMEA 0183 не поддерживается.
 
Posted by Kidim1975 (Участник № / Member № 4421) on :
 
1. Через @Exit я уже пробовал. Мне кажется в следующих версиях программы вам нужно, все таки предусмотреть программные аналоги CTRL+F и CTRL+T а также и CTRL+SHIFT+Z или даже какое нибудь более функциональное масштабирование. На мой взгляд это очень логично.
2. Помогите написать драйвер для NMEA 0183. Если у вас есть получение широты-долготы, то остальное не должно быть более сложной задачей. может дадите исходники как это реализовано? Или еще лучше сами сделаете. только нормальный драйвер в источники, а не через переменные.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. Мы обсудим целесообразность введения этих функций.

2. По этому вопросу нужно обратиться в marketing@adastra.ru.
 
Posted by Kidim1975 (Участник № / Member № 4421) on :
 
Господа подскажите ответ на простой вопрос. Имеется контроллер с обменом по Modbus TCP в контроллере есть модули цифрового ввода и вывода и аналоговые входы. С аналогового входа получаю информацию, с дискретных входов тоже - тут все нормально. В дискретные выходы я тоже все записываю нормально. Но информация на выходах контроллера может меняться и под влиянием других процессов, а вот прочитать информацию с выхода не получается. Я так понял чтобы выход читать нужно использовать Rout_Byte то есть чтение выходного байта? Если это так то каковы тогда его настройки? Такие же как в случае если я этот байт записываю, то есть W_Byte или нет? В частности направление? Или я вообще все не так понимаю. Просто в справке не очень понятно написано, я экспериментировал и понял что у меня в контроллере канал начинается с 0 для каждого типа устройств, то есть превый цифровой вход канал 0, первый аналоговый вход канал 0, первый цифровой выход тоже канал 0. Если я оставлю для Rout_Byte тип направление по умолчанию input я не понимаю какой канал. если беру output тоже не работает, может так и не может работать? как же всетаки ПРОЧИТАТЬ цифровые ВЫХОДЫ?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Если Вы хотите прочитать состояние тех же выходов, в которые Вы успешно записываете с помощью функции W_Byte, то Вам надо иметь компонент "Источников" Rout_Byte (Input) с теми же настройками ("Адрес", "Канал" и IP-адрес), что и в компоненте W_Byte.
К компоненту Rout_Byte должен быть привязан канал HEX16 (Input).
Все это справедливо, если адреса на считывание и запись дискретных Modbus-переменных типа OUT в конкретном устройстве в соответствии со стандартом Modbus совпадают.
Если же бинарный выход в контроллере мэпируется на запись и чтение по разным адресам памяти, надо уточнить эти адреса по описанию устройства. И соответственно настраивать компоненты Modbus в проекте.
 
Posted by Kidim1975 (Участник № / Member № 4421) on :
 

 
Posted by Kidim1975 (Участник № / Member № 4421) on :
 
Спасибо. Действительно адреса для чтения выходов оказались со смещением 0х0200 от их записи.
 
Posted by ilovefiniki (Участник № / Member № 4106) on :
 
У меня похожая ситуация. Только немного сложнее.
Есть канал hex16(output). По нажатию кнопки на экране мне нужно отправлять 1 в контроллер по modbusTCP. Только вот срабатывает это только единожды. Поскольку регистр в контроллере сбрасывается в 0 самостоятельно по многим причинам, известным только в контроллере, мне необходимо каждый раз отправлять именно 1( что аналогичное кнопке без фиксации), но ТМ думает что значение не изменилось и ничего не отправляет. Если пытаться по нажатию кнопки на экране сначала сбрасывать канал в 0, а потом опять выставлять 1, то значение в канале меняется, но дальше опять таки не уходит. Я так понимаю потому что время обработки событий кнопки гораздо меньше чем передача по modbus обёрнутого в GPRS и к моменту передачи опять оказывается что значение канала тоже самое и отправлять его контроллеру не имеет смысла.
В общем не могли бы Вы привести простой пример: 1 кнопка на экране постоянно записывает по модбасу 1.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
На сегодняшний день принудительная посылка в контроллер от кнопки с экрана будет осуществляться, если второй командой той же кнопки при нажатии будет посылка "1" в атрибут EXEC (39) того же канала.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2