|
Связь с внешним миром Modbus, RS232, RS485, Lon и другое. |
|
Опции темы | Поиск в этой теме |
18.04.2007, 14:08 | #1 |
Guest
Сообщения: n/a
|
Получение данных на контроллер через COM
Имеются весы и связанный с ними индикатор. Индикатор имеет выход (RS-232), его можно подключить к компьютеру через COM-порт и получать вес в виде числа через Hyperterminal, например.
Требуется подключить индикатор к контроллеру и получать значение веса прямо на контроллер. Что для этого нужно сделать? В инструкции к индикатору есть описание формата передаваемых данных (8ACS-LH): Это 8-битовый стандартный код ASCII. Сначала отправляется первый идетификатор "=" (3DH), затем из 7 цифр отправляются данные взвешивания, а в конце также отправляется идентификатор. Последовательность данных имеет первый нижний бит и последний верхний бит. Символ "-" это "2D", точка - "2E". Например, если масса груза 123.456 то передается "3D, 36, 35, 34, 2E, 33, 32, 32". Скорость 9600 бит\сек. |
24.04.2007, 14:33 | #2 |
Новичок
Регистрация: Feb 2006
Сообщения: 5
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Получение данных на контроллер через COM
Бесполезно, для этого надо иметь возможность программировать один
из портов контроллера. У других фирм для этого имеются программные блоки типа COMM или XMIT (пакет Concept от Шнайдера). На мой взгляд, segneticsу давно пора это сделать, Арсений, а? Правда распаковывать полученный ответ не так просто, особенно если там имеются текстовые сообщения. |
28.04.2007, 09:11 | #3 |
Новичок
Регистрация: Apr 2006
Сообщения: 1
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Получение данных на контроллер через COM
Полностью с Вами согласен. Я уже попросил Арсея что бы они выложили исходные коды на SMLogic. Хочу написать свою программную оболочку для SMH 2010. А то уж ничего кроме ModBus у них нету что очень ограничивает применение панели. Или покрайне мере сделали бы блок который принимает N байт а ты читаешь необходимые байты. У мня в ОС все это реализовано остаолсь только оболочку приделать. А то программировать блоками кодов не очень удобно.
|
28.04.2007, 16:23 | #4 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Получение данных на контроллер через COM
Цитата:
Это как поймать за руку водилу, сидящего в тойоте и требовать с него чертежи двигателя от этой тойоты Контактируйте с менеджерами, убеждайте их. Максимум, что могу сделать я - просто заикнуться перед ними про это, но не более. Ну и возразить/поддержать ваши идеи в форуме. Например, блок, выдающий последовательность принятых байтов - утопичен, т.к. как вы сделаете отсечку ненужных кусков пакета (например полупринятый предыдущий пакет сложился с текущим), подсчёт CRC на лоджике ??? Он же совершенно для этого не приспособлен. И как выбрать количество байт в буфере? Блок с тысячей выходов сам по себе отожрёт чуть ли не четверть доступной памяти... Как можно думать "примем байты, и они будут самое оно"? Мне, как человеку, занимавшемуся системным программированием, это не понять, там же ещё туева хуча проблем... Если не предусмотреть это, то ничего толкового из проекта не выйдет, т.к. глючащий проект и неработающий проект - это одно и то же. Всё красиво работает только на столе. А ком-порт - это такая штука, которая может и помеху за принятый байт принять. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
28.04.2007, 20:09 | #5 |
Senior Member
Регистрация: Jan 2006
Сообщения: 172
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Получение данных на контроллер через COM
Получение данных с порта в необработанном виде типовая задача. Можете посмотреть как это реализовано, например, в IsaGraf'e. Коммуникационный контроллер из SMH конечно не получится, но возможность работать с устройствами не поддерживающими протокол Modbus расширит его область применения. Класс для работы с последовательными в BIOSе уже есть, осталось сделать его функциональность доступной в виде нескольких блоков FBD.
|
15.06.2007, 13:53 | #6 |
Новичок
Регистрация: Jun 2007
Сообщения: 1
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Получение данных на контроллер через COM
Ну а у меня такая проблема: протокол все-таки модбас и все бы хорошо, но функции чтения-записи используются другие (03, 06 и 05).
Есть вариант изменять только функцию? |
19.06.2007, 09:51 | #7 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Получение данных на контроллер через COM
Цитата:
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
06.08.2007, 10:57 | #8 |
Guest
Сообщения: n/a
|
Ответ: Получение данных на контроллер через COM
Добрый день.
Ситуация такова: Имеется прибор С2010-3222-001-5 необходимо подключить через СОМ1 (RS-485) контроллер ICP CON 7188 и по протоколу ModBus считывать с него дискретные(boolean) сигналы. Впрограмме SMLogic v.3.14 добавил устройство Slave , настроил параметры связи адрес=1 скорость=9600 и т.д. Создал карту памяти с каналами типа boolean, направлением R(in) и адресами с 1 по 5. Далее при попытке загрузить проект в контроллер, выдается сообщение что на СОМ1 обнаружен мастер. Это сообщение выдается даже если Сом порт отсоединен. Подскажите пожалуйста где собака порылась.??? С уважением. Матросов С.С. ООО ПК "СпецКипАвтоматика" г.Томск |
06.08.2007, 14:06 | #9 |
Guest
Сообщения: n/a
|
Ответ: Получение данных на контроллер через COM
Оказывается проблема в том что я загрузил какуюто конфигурацию псле которой SMH перестал отвечать. Говорит что на СОМ1 работает мастер.
Как сбросить эту ошибочную конфигурацию??? |
06.08.2007, 14:59 | #10 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Получение данных на контроллер через COM
Загрузить проект с иной конфигурацией через свободный порт контроллера. В вашем случае - COM2.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
06.08.2007, 15:17 | #11 |
Guest
Сообщения: n/a
|
Ответ: Получение данных на контроллер через COM
Получается что в документации неправильно обозначены порты.
Разьем XP6-это СОМ1, а клеммы А,С-это СОМ2 ??? |
06.08.2007, 16:58 | #12 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Получение данных на контроллер через COM
В документации всё верно, на клеммах - СОМ1.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
27.01.2008, 17:20 | #13 |
Senior Member
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Получение данных на контроллер через COM
Арсений, а оптоизолированный порт - COM2 ? Т.е. тот, что на RJ12 "сидит"?
Тогда мне лучше SCADA-RS485-сеть "посадить" на Сом2 (с изоляцией), а слейв-частотник - на Сом1 (частотник находится в шкафу радом с контроллером). Я правильно рассуждаю ? Последний раз редактировалось vladun, 27.01.2008 в 17:23 |
28.01.2008, 10:26 | #14 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Получение данных на контроллер через COM
Да, на рж находится СОМ2. В вашем случае неизвестно, что хуже, частотник или длинная связь до диспетчерской. Думаю, это нужно будет решить на месте.
Если частотник включен правильно (согласно техдокументации на него), то с ним нужно работать черех СОМ1, но проблема в том, что за свою жизнь правильно подключенных частотников я видел гораздо меньше, чем у меня пальцев на одной руке __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
28.01.2008, 13:04 | #15 | |
Senior Member
Регистрация: Feb 2007
Сообщения: 174
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Получение данных на контроллер через COM
Цитата:
ЗЫ: а сколько у тебя пальцев на одной руке ? ЗЫ2: прошу принять как шутку |
|
28.01.2008, 16:51 | #16 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Получение данных на контроллер через COM
Цитата:
PS. Только чур, в целочисленной математике, а то щас начнётся "Пять пальцев и ещё один маленький бугорок что ли?!!" __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
28.01.2008, 19:28 | #17 | |
Senior Member
Регистрация: Dec 2007
Адрес: Томск
Сообщения: 4 171
Благодарил(а): 241 раз(а)
Поблагодарили:
166 раз(а) в 158 сообщениях
|
Ответ: Получение данных на контроллер через COM
Цитата:
|
|
29.01.2008, 10:26 | #18 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Получение данных на контроллер через COM
Цитата:
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
09.04.2010, 15:18 | #19 |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Получение данных на контроллер через COM
Нет ли у кого распайки кабеля для подключения контроллера SMH с портом RS232 (RJ12) к модему?
Или, на худой конец, распиновки разъема RJ12? А то в документации описан только RS485 |
09.04.2010, 20:07 | #20 | |
Сотрудник Segnetics
Регистрация: Dec 2008
Адрес: Оракул отдела продаж ООО"Сегнетикс"+7(812)564-50-01
Сообщения: 411
Благодарил(а): 90 раз(а)
Поблагодарили:
28 раз(а) в 27 сообщениях
|
Ответ: Получение данных на контроллер через COM
Цитата:
Последний раз редактировалось Ruslangsm, 29.02.2020 в 00:50 |
|
13.04.2010, 10:40 | #21 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Получение данных на контроллер через COM
Цитата:
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
19.02.2011, 12:36 | #22 |
Новичок
Регистрация: Jul 2009
Сообщения: 4
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Получение данных на контроллер через COM
проблема:
три пихела, мастер и 2 слейва, мастер передает значение температуры на оба слейва, при выкл/вкл слейвы встают в аварию по обрыву датчика, после ручного сброса через ESC работают. очевидно что слейвы не успевают прочитать переменную. как решить проблемму? |
21.02.2011, 10:28 | #23 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Получение данных на контроллер через COM
Цитата:
1) Слейвы не умеют ничего читать, это мастер в них записывает 2) Поставить задержки на аварии - самое элементарное что можно придумать . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
21.02.2011, 12:12 | #24 | |
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Получение данных на контроллер через COM
Цитата:
Если преобразовать код аналогового входа в мастере и передавать слейвам значение температуры, то аварии обрыва датчика не будет. Ну и контролировать в слейвах их опрос мастером в любом случае не помешает. Есть несколько способов, как это сделать: по эху, по тайм-ауту и т.д. Нет связи - нет чужих аварий... |
|
21.02.2011, 17:10 | #25 | ||
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Получение данных на контроллер через COM
Цитата:
Цитата:
. __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
||
21.02.2011, 17:37 | #26 | ||
Senior Member
Регистрация: Jul 2007
Адрес: Калининград
Сообщения: 422
Благодарил(а): 0 раз(а)
Поблагодарили:
1 раз в 1 сообщении
|
Ответ: Получение данных на контроллер через COM
Цитата:
Цитата:
|
||
21.02.2011, 18:55 | #27 | |
Новичок
Регистрация: Jul 2009
Сообщения: 4
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Получение данных на контроллер через COM
Цитата:
Всем спасибо! Проблему решил сам, подставляя при включении некоторое значение на несколько секунд, попробую и предложенные варианты. )) |
|
22.02.2011, 10:41 | #28 | |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Получение данных на контроллер через COM
Цитата:
Про зеркало - улыбнуло . __________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |
|
09.06.2019, 00:40 | #29 |
Новичок
Регистрация: Dec 2017
Сообщения: 16
Благодарил(а): 0 раз(а)
Поблагодарили:
0 раз(а) в 0 сообщениях
|
Ответ: Получение данных на контроллер через COM
А есть возможность написать под Linux обмен для trim, 2gi..?
|
10.06.2019, 10:39 | #30 |
Сотрудник Segnetics
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 157
Благодарил(а): 15 раз(а)
Поблагодарили:
665 раз(а) в 607 сообщениях
|
Ответ: Получение данных на контроллер через COM
Не просто есть, а в документации даже пример присутствует.
__________________ Программа делает то что написал программист, а не то что он хотел. Добро всегда побеждает зло. Кто победил - тот и добрый. |