Ответы в темах
-
АвторСообщения
-
p001p
УчастникВ процессе отладки гораздо проще отправлять бинарную команду, в которой явно прописываете отправляемые байты. Чтобы перевести float в 16-ричную форму используйте, например, http://www.binaryconvert.com/result_float.html
Когда заработает, расскажу, как преобразовать double для отправки. Это не так сложно.Можно рассказать сразу? Работы ведутся на объекте где нету связи и очень трудно лишний раз организовывать доступ в интернет и ехать обратно на объект. С переводом из одной СС в другую проблем не возникнет. А вот с преобразованием в другой тип данных хотелось бы знать чуть заранее.
p001p
УчастникДа, ситуация складывается такая, что контроллер, Segnetics SMH2G(i) и Segnetics Pixel, не поддерживает сквозную запись в переменную.
Т.е. ТОЛЬКО одна переменная MODBUS и ТОЛЬКО одна перменная вводимая с экрана контроллера, тем самым мы получаем смешную ситуацию, когда введёное повтороно значение в перменную Modbus — не записывается.
Тем самым надо организовать что-то вроде «обратной связи»
Если изменилось значение ВК2, то оно должно записаться через КУ1 в переменную на контроллере.Если хотите почувствовать всю «костыльность» решения на данном контроллере.
Правильно ли я понял, что нужно при изменении входного канала, передавать новое значение на контроллер? Если да, то в новом Модуле автоматического управления есть триггер на изменение. Правда, новая версия пока не выложена, но могу прислать.
Совершенно верно! Отследить изменение входного канала, который считывает значение с переменной в контроллере — передать его на контроллер через канал управления, но в другую переменную =)
p001p
УчастникНиже представлен файл конфигурации Lectus OPC.
Может он вам что-нибудь подскажет?
<Lectus_OPC_server_config_file Protect="34101"> <_COM_PORTS_> <COM1 Speed="115200" DataBits="8" Parity="NONE" StopBits="1" XONXOFF="NONE" DTR="ENABLE" RTS="ENABLE" CTS="false" DSR="false" RaiseRTS="0" DropRTS="0" ReadInterval="5"/> <COM2 Speed="115200" DataBits="8" Parity="NONE" StopBits="1" XONXOFF="NONE" DTR="ENABLE" RTS="ENABLE" CTS="false" DSR="false" RaiseRTS="0" DropRTS="0" ReadInterval="5"/> <COM3 Speed="115200"/> <COM4 Speed="115200"/> <COM11 Speed="115200" DataBits="8" Parity="NONE" StopBits="1" XONXOFF="NONE" DTR="ENABLE" RTS="ENABLE" CTS="false" DSR="false" RaiseRTS="0" DropRTS="0" ReadInterval="5"/> </_COM_PORTS_> <_ITEMS_> <Item Name="Request1" Plugin="0" Flag="1" AccessPath="" AccessRights="3" CanonicalDataType="0" AccessChange="31" EUType="0" EUInfo="0" Props_0_PropertyID="101" Props_0_DataType="8" Props_0_ItemID="" Props_0_Description="Описание узла" Props_0_Value="" Props_1_PropertyID="6" Props_1_DataType="4" Props_1_ItemID="" Props_1_Description="Частота опроса" Props_1_Value="100" Props_2_PropertyID="5000" Props_2_DataType="17" Props_2_ItemID="" Props_2_Description="COM порт" Props_2_Value="10" Props_3_PropertyID="5001" Props_3_DataType="2" Props_3_ItemID="" Props_3_Description="Адрес устройства" Props_3_Value="9" Props_4_PropertyID="5004" Props_4_DataType="2" Props_4_ItemID="" Props_4_Description="Функция чтения" Props_4_Value="1" Props_5_PropertyID="5005" Props_5_DataType="2" Props_5_ItemID="" Props_5_Description="Функция записи" Props_5_Value="15" Props_6_PropertyID="5002" Props_6_DataType="11" Props_6_ItemID="" Props_6_Description="Групповой запрос" Props_6_Value="True" Props_7_PropertyID="5999" Props_7_DataType="4" Props_7_ItemID="" Props_7_Description="Начальная фаза опроса" Props_7_Value="0" Props_8_PropertyID="5015" Props_8_DataType="8" Props_8_ItemID="" Props_8_Description="Тип подключения" Props_8_Value="Прямое подключение" Props_9_PropertyID="5027" Props_9_DataType="8" Props_9_ItemID="" Props_9_Description="Тип Slave подключения" Props_9_Value="Нет" Props_10_PropertyID="5029" Props_10_DataType="11" Props_10_ItemID="" Props_10_Description="Порядок байт - старшим байтом вперед" Props_10_Value="True" Props_11_PropertyID="5030" Props_11_DataType="11" Props_11_ItemID="" Props_11_Description="Порядок байт - старшим регистром вперед" Props_11_Value="False" Props_12_PropertyID="5052" Props_12_DataType="8" Props_12_ItemID="" Props_12_Description="Преамбула команды" Props_12_Value="" Props_13_PropertyID="5060" Props_13_DataType="11" Props_13_ItemID="" Props_13_Description="Широковещательная команда" Props_13_Value="False" Props_14_PropertyID="5073" Props_14_DataType="11" Props_14_ItemID="" Props_14_Description="Возможен ответ больше ожидаемого" Props_14_Value="False" Props_15_PropertyID="5061" Props_15_DataType="8" Props_15_ItemID="" Props_15_Description="Контрольная сумма" Props_15_Value="CRC (Modbus)" Props_16_PropertyID="5025" Props_16_DataType="11" Props_16_ItemID="" Props_16_Description="Тип устройства - Master" Props_16_Value="True" Props_17_PropertyID="5026" Props_17_DataType="11" Props_17_ItemID="" Props_17_Description="Тип устройства - Slave" Props_17_Value="False" Props_18_PropertyID="5031" Props_18_DataType="8" Props_18_ItemID="" Props_18_Description="Тип данных" Props_18_Value="Текущие данные"> <Item Name="Ask" Plugin="0" Flag="2" AccessPath="" AccessRights="3" CanonicalDataType="11" AccessChange="31" EUType="0" EUInfo="0" Props_0_PropertyID="1" Props_0_DataType="2" Props_0_ItemID="" Props_0_Description="Тип переменной" Props_0_Value="11" Props_1_PropertyID="2" Props_1_DataType="12" Props_1_ItemID="" Props_1_Description="Значение переменной" Props_1_Value="" Props_2_PropertyID="3" Props_2_DataType="2" Props_2_ItemID="" Props_2_Description="Качество переменной" Props_2_Value="" Props_3_PropertyID="4" Props_3_DataType="7" Props_3_ItemID="" Props_3_Description="Метка времени" Props_3_Value="" Props_4_PropertyID="5" Props_4_DataType="3" Props_4_ItemID="" Props_4_Description="Права доступа" Props_4_Value="3" Props_5_PropertyID="7" Props_5_DataType="3" Props_5_ItemID="" Props_5_Description="Тип(значение/перечисление)" Props_5_Value="0" Props_6_PropertyID="5003" Props_6_DataType="18" Props_6_ItemID="" Props_6_Description="Адрес переменной" Props_6_Value="1"/> </Item> <Item Name="Request2" Plugin="0" Flag="1" AccessPath="" AccessRights="3" CanonicalDataType="0" AccessChange="31" EUType="0" EUInfo="0" Props_0_PropertyID="101" Props_0_Value="" Props_1_PropertyID="6" Props_1_Value="100" Props_2_PropertyID="5000" Props_2_Value="10" Props_3_PropertyID="5001" Props_3_Value="9" Props_4_PropertyID="5004" Props_4_Value="4" Props_5_PropertyID="5002" Props_5_Value="True" Props_6_PropertyID="5999" Props_6_Value="0" Props_7_PropertyID="5015" Props_7_Value="Прямое подключение" Props_8_PropertyID="5027" Props_8_Value="Нет" Props_9_PropertyID="5029" Props_9_Value="True" Props_10_PropertyID="5030" Props_10_Value="False" Props_11_PropertyID="5052" Props_11_Value="" Props_12_PropertyID="5060" Props_12_Value="False" Props_13_PropertyID="5073" Props_13_Value="False" Props_14_PropertyID="5061" Props_14_Value="CRC (Modbus)" Props_15_PropertyID="5025" Props_15_Value="True" Props_16_PropertyID="5026" Props_16_Value="False" Props_17_PropertyID="5031" Props_17_Value="Текущие данные"> <Item Name="PV" Plugin="0" Flag="2" AccessPath="" AccessRights="1" CanonicalDataType="4" AccessChange="31" EUType="0" EUInfo="0" Props_0_PropertyID="1" Props_0_Value="4" Props_1_PropertyID="2" Props_1_Value="" Props_2_PropertyID="3" Props_2_Value="" Props_3_PropertyID="4" Props_3_Value="" Props_4_PropertyID="5" Props_4_Value="1" Props_5_PropertyID="7" Props_5_Value="0" Props_6_PropertyID="5003" Props_6_Value="2"/> </Item> <Item Name="Request3" Plugin="0" Flag="1" AccessPath="" AccessRights="3" CanonicalDataType="0" AccessChange="31" EUType="0" EUInfo="0" Props_0_PropertyID="101" Props_0_Value="" Props_1_PropertyID="6" Props_1_Value="100" Props_2_PropertyID="5000" Props_2_Value="10" Props_3_PropertyID="5001" Props_3_Value="9" Props_4_PropertyID="5004" Props_4_Value="3" Props_5_PropertyID="5005" Props_5_Value="16" Props_6_PropertyID="5002" Props_6_Value="True" Props_7_PropertyID="5999" Props_7_Value="0" Props_8_PropertyID="5015" Props_8_Value="Прямое подключение" Props_9_PropertyID="5027" Props_9_Value="Нет" Props_10_PropertyID="5029" Props_10_Value="True" Props_11_PropertyID="5030" Props_11_Value="False" Props_12_PropertyID="5052" Props_12_Value="" Props_13_PropertyID="5060" Props_13_Value="False" Props_14_PropertyID="5073" Props_14_Value="False" Props_15_PropertyID="5061" Props_15_Value="CRC (Modbus)" Props_16_PropertyID="5025" Props_16_Value="True" Props_17_PropertyID="5026" Props_17_Value="False" Props_18_PropertyID="5031" Props_18_Value="Текущие данные"> <Item Name="Set" Plugin="0" Flag="2" AccessPath="" AccessRights="3" CanonicalDataType="4" AccessChange="31" EUType="0" EUInfo="0" Props_0_PropertyID="1" Props_0_Value="4" Props_1_PropertyID="2" Props_1_Value="" Props_2_PropertyID="3" Props_2_Value="" Props_3_PropertyID="4" Props_3_Value="" Props_4_PropertyID="5" Props_4_Value="3" Props_5_PropertyID="7" Props_5_Value="0" Props_6_PropertyID="5003" Props_6_Value="2"/> </Item> </_ITEMS_> <_HDA_ITEMS_/> </Lectus_OPC_server_config_file>p001p
УчастникИтак.
Немного изменили условия, чтобы можно было более детальней установить проблему.Имеется Holding Register, имя: Set, адрес в контроллере 00002, занимает 4 байта (00002-00004).
Текущее значение: 0.
Скриншот как её видит Lectus OPC.
[img]http://savepic.net/9933439.png[/img]

Задача — записать в неё значение. Любое.
Соответственно, ещё раз почитав форум, понял что существуют достаточно серьёзная проблема с записью float, ибо коммуникатор обрезает double и т.п. и т.д. Поэтому я предлагаю не вдаваться в детальные подробности организации сети и передачи переменных, ибо нужен результат.Настройки линии связи. Модбас ТСП через ЕТ-485 Новатек.
[img]http://savepic.net/9951871.png[/img]

Шаблон КП.
Так как в ПЛК адрес — 2, значит я опрашиваю на 1 больше -> 3 адрес, галочка на множ. перем. и в соответствующем окне — 2
[img]http://savepic.net/9939583.png[/img]

Значение переменной Set — 0. Задача — записать в нее что-либо.
Отправляем команду через коммуникатор:
[img]http://savepic.net/9943679.png[/img]

Значение переменной не изменилось, (осталось 0), лог ответа представлен ниже.
[img]http://savepic.net/9932415.png[/img]

Вопрос, как записывать переменные float? Вечно сидеть на int (2 byte) я не могу.
p001p
УчастникИменно. Попробуйте поставить галочку Множественная команда и задать ей 2 элемента.
И присылайте часть лога, в которой виден момент отправки.Так и делал.
Скажите пожалуйста, если у меня адрес HEX А400, то +1 адрес это А401? А402? А404?p001p
Участник1. Сконфигурированные каналы управления
2. Сконфигурированный шаблон опроса устройства по Modbus
3. Настройки коммуникатора.
4. Лог после отправки Команды ТУ
Продублировал фотографии в надежде что они отобразятся. -
АвторСообщения