Здравствуйте. Что-то у меня ни как не получается произвести обмен между приложениями по TCP/IP. Подскажите, к примеру что нужно выставить в modSim32 и в TRACE MODE 6. Потому что в modSim32 учавствуют ID, адрес, количество регистров и функция например 03 а в TRACE MODE 6 номер порта 502, адрес, канал. IP адрес понятно протокол TCP/IP выставлен направление тоже. Передавать и принимать мне нужно числа с плавающей точкой.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
После коннекта modSim32 по сети надо задать ему 1. В меню Display - Float(Swapped). 2. ID - адрес устройства, который Вы задаете в проекте Trace Mode 6. 3. Адрес и количество регистров - массив переменных, который покрывает адреса переменных, используемых в проекте Trace Mode 6. 4. Modbus Point Type - 03: HOLDING REGISTER.
В проекте Trace Mode 6 1. Использовать функцию Rout_Float(3). 2. Адреса переменных в проекте задавать на 1 меньше, чем в modSim32. Например, для переменной 40003 в modSim32 в проекте надо задать 2.
Posted by ryazanovmtechprom (Участник № / Member № 5671) on :
Добрый день!
Мучает аналогичная проблема - нет обмена. но передавать надо булевые и dint переменные. на ваш эл. адрес написал и выслал пробный проект - но хотелось бы и здесь услышать ваши советы - как по TCP/Ip передавать и принимать такие переменные
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
В Вашем проекте есть нестрогость в выборе типов каналов для функций Rin_Word(4) и W_Word(6) - они должны быть HEX16.
И есть ошибка - 2 SLAVE с одинаковыми IP-адресами имеют одинаковые порты. Так работать нельзя. Или IP-адреса или порты у SLAVE должны быть разными.
Проверил Ваш проект на ModSim32 поочередно для всех используемых в проекте функций - работает.
Следует иметь в виду, что Trace Mode 6 не позиционируется для работы на виртуальных ОС. Работайте с лицензированными штатными ОС Windows.
Posted by ryazanovmtechprom (Участник № / Member № 5671) on :
Тогда просьба - перешлите мне пожалуйста обратно переработанный Вами проект чтоб я мог посмотреть на свои ошибки))
Posted by ryazanovmtechprom (Участник № / Member № 5671) on :
насчет SLAVE я их поочередно подключал к модсим - думал что особой разницы в этом нет и самое что интересное как раз переменные типа float также не работали - а насчет НЕЧ 16 - дак я как в примере создал Rin_Word(4) и W_Word(6) и закинул их в RTM он их автоматически так создал.
[ 02.08.2012, 14:27: Сообщение отредактировал / Message edited by AdAstra Technical Support ]
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Я Ваш проект не перерабатывал, только IP-адрес заменил на свой. Перепроверил: в Вашем проекте компоненты Rin_Word(4) и W_Word(6) из слоя "Источники/Приемники" D&D перенес в узел - создались каналы HEX16.
Для получения данных из HOLDING-регистров в формате FLOAT по функции Rout_Float(3) в ModSim32 надо задать массив HOLDING-регистров, а в меню Display - режим Float(Swapped).
Ничего дополнительно для моделирования Вашего проекта я не делал.
Posted by ryazanovmtechprom (Участник № / Member № 5671) on :
сделал по вашему совету - заходил не из под виртуалки - а сигнал по прежнему не проходит(( какможно проверить наличие прохождения сигнала как со стороны модсима так и со стороны ТМ6??? потому как при конектинге - связь устанавливается - по крайней мере - мигающее сообщение " not connected!" со стороны модсима пропадаетю
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Проверить связь можно заданием ключа DEBUGON=400 в файле TMcom_xx.cnf (см."Приложения/Задание параметров работы мониторов"). В протоколе профайлера должны появиться сообщения о попытках коннекта со стороны Trace Mode 6 и об ошибках связи.
Posted by ryazanovmtechprom (Участник № / Member № 5671) on :
сдалал как вы и написал - создал файл. cnf переменную @debug и аналогичный канал - запустил и в протоколе профайлера появилось сообщения об ошибке связи: (13:10:29) ERR_TCP:invalid connect for unit_xx addr=172.16.0.1[502] err=10060
что это мб за ошибка? подскажитье пжлста
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Это код ошибки, возвращаемый ОС. "Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик". Необходимо проверить корректность связей между ПК (включая политику безопасности, настройки брандмауэра, например) и доступность портов 502.
Posted by ryazanovmtechprom (Участник № / Member № 5671) on :
вообщем, от ошибки связи удалось избавится - но и сообщения об установлении связи нет. выслал вам свой пробный проект - убедительная просьба если там есть ошибка или даже ее нет- то пжлста настройте как надо и перешлите мне обратно - а то 4 дня сижу с такой проблемой((
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Как Вам удалось "избавиться от ошибки связи"?
Posted by ryazanovmtechprom (Участник № / Member № 5671) on :
взял 2 других компьютера- поставил на них необходимое по и запустил - ошибки нет но и записи об соединении тоже нет как впрочем и передачи данных
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Ошибок в проекте Trace Mode 6 мы не обнаружили. Сообщений об ошибках связи Вы не могли получить, потому что имя файла TMcom_ProbaModBus3_0.cnf.txt неверное. Этот файл должен именоваться TMcom_0.cnf
Необходимо учесть, что на попытки коннекта уходит около 0.5-1 мин. Поэтому сообщение об ошибке связи в момент запуска профайлера не появится. Надо подождать около 1 мин.
Posted by ryazanovmtechprom (Участник № / Member № 5671) on :
Переименовал файл в TMcom_0.cnf. Все остальное оставил прежним. Запустил модсим 32 - создал 3 inputregister (2 float swapped и 1 hex) и 1 holding register (hex). id device - 1 у всех и modbus/tcp svr - 502. Файл ip_modbus ;502 Port 1 172.16.0.1 запустил - попробовал передать значение в holding register подождал 20 минут и ничего по связи, а точнее вот что забилось в протокол профайлера: (13:55:20) INF_LOAD:Starting... ProbaModBus3_0 (13:55:20) INF_RTM:Detected NT6.RTM 6.1 (13:55:20) INF_RTM:Professional TRACE MODE 6 Profiler T-Factory RTM+ ver. 6.08.0 (13:55:20) ._.:RTM (13:55:20) INF_LOAD:max channel = 65535 (13:55:20) INF_LOAD:Load Channels = 5 (13:55:20) INF_LOAD:Templates=0 (math=0 sql=0 scr=0 doc=0 pnl=0) (13:55:20) INF_LOAD:Objects = 3 (13:55:20) INF_RTM:Timer=0.055s CalcLoop=550ms (13:55:20) INF_LOAD:LoadTime=0.374s CalcPeriod=550ms (13:55:20) INF_RTM:free_mem=565(595) handle=0 user=0 gui=0 after load (13:55:20) INF_RTM:DayLight disabled (13:55:20) INF_RTM:start time is 0.031 s (13:55:20) INF_RTM:free_mem=565 handle=0 user=0 gui=0 after start (13:55:25) INF_RTM:ModeSwitch e15=0000 e18=0000 e20=0000 [0] (13:55:25) INF_RTM:mode=2(Work) e15=00 e18=00 e20=00 [0-0-src4] (13:55:25) INF_GRAPH:popup=0 scrref=0 trend=0,0 update=0 (14:15:45) INF_RTM:stoping... (14:15:46) INF_RTM:mode=5(Stop) e15=00 e18=00 e20=00 [0-0-src0] (14:15:46) INF_RTM:stop time is 2.293 s (14:15:46) INF_RTM:number of calculation = 2168 (14:15:46) INF_RTM:END OF WORK
никаких попыток даже вступить в связь не обнаружено((
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Отсутствие сообщений о попытках коннекта и об ошибках говорит о неправильной диагностике. Целесообразно перевести обсуждение проблемы в рабочем порядке по почте.