Просмотр полной версии : плк и тензо-м
deniska6666
19.10.2010, 09:54
Есть ПЛК 100 R-L
есть датчик тензо-м
есть сумматор ТВ-006С
датчик подключен к сумматору (тоже фирмы Тензо-М). На сумматоре отображается правильный вес. Сумматор поддерживает протокол обмена Modbus RTU по интерфейсу 485.
Настройки сумматора: адрес -1 , скорость обмена 9600, 8-N-1.
Не получается в ПЛК получить значение переменной веса. Что я делаю не так?
Создал Modbus (Master) RTU, добавил универсал модбас девайс. Прописал адрес, скорость обмена и прочее. Добавил все возможные опрашиваемые переменные. на выходе везде 0. Помогите разобраться.
Заранее сэнкс.
Николаев Андрей
19.10.2010, 10:32
оставьте только один параметр, который вы и хотите опрашивать.
какой он имеет тип?
какой командой его необходимо опрашивать?
deniska6666
19.10.2010, 14:33
http://www.tenso-m.ru/pages/21?id=133
это ссылка на конфиг сумматора. В том то и дело что я не знаю какой параметр опрашивать и какой командой....
Николаев Андрей
19.10.2010, 16:10
Вам надо обратиться в компанию Тензо-М, и спросить из какого регистра и какой командой по стандарту ModBus я могу получить значение "нужного мне параметра"...
deniska6666
20.10.2010, 04:50
спасибо! буду звонить!
deniska6666
20.10.2010, 08:09
01h- read coils
03h - read multiple registers
10h- write multiple registers
0fh- writemultiple coils
есть только такие функции. Нифига не продвинулся. В тензо-м ничего не сказали. Они по своему протоколу работают, а кто там этим занимается его нет.
Николаев Андрей
20.10.2010, 09:04
Команды нормальные. В ПЛК они поддержаны.
Осталось выяснить номер нужного регистра.
Думаю у Тензо-М должен быть стандартный ModBus, хотя Меркурий же не заморачивается почему то...
Если протокол все-таки не стандартный - придется по описаному алгоритму Вам самому в ПЛК обмен организовывать.
deniska6666
20.10.2010, 09:35
0x14C (332) - номер регистра.
Указываю команду 003, регистр пишу 332. Не читает всё равно! Переменную создаю 32 input module
Николаев Андрей
20.10.2010, 10:13
Если ждете 2 байта - используйте Register input module
Если ждете число с плавющей точкой - real input module
deniska6666
20.10.2010, 12:14
Всё получилось! Благодаря sergey_ng. Кому будет интересно могу выложить проект.
Николаев Андрей- спасибо вам тоже!!!
Николаев Андрей
20.10.2010, 17:14
кнечно выкладывайте. а еще лучше - расскажите как с их приборами общаться - думаю люди столкнутся...
Если возможно на проект хотелось бы посмотреть...
Заранее спасибо!:)
звездочка
24.04.2014, 08:18
пример так и не выложили. Вес то мы с датчика увидели на плк без проблем, а вот может кто-нибудь пробовал давать разрешение на дозирования. Может кто подскажет нам, возможно ли это?
yakov_cyb
27.04.2014, 19:02
Добрый день. Вот как раз хотим попробовать дозирование. В протоколе есть разрешение дозирования. На неделе поэкспериментируем с железом.
звездочка
06.05.2014, 11:48
как прошли пробы с железом? хотелось бы узнать результат и если положительный, то советы по осуществлению.
Да там понамутили тензо-м. Непойму почему не сделали всё на команде 3 (4).
Реализованно под ПЛК110-32 .
Там единственный выход - писать и читать библиотекой ModbusLib.
Так как в "Конфигурация ПЛК" отсутствуют некоторые команды протокола применённые разработчиками Тензо-М.
Программа на SFC для упрощения организации последовательного опроса и записи по порту, сами действия на FBD.
Управление чтением\записью через пользовательские типы (структуры).
Всё остальное описано в программе в приложении. Всё с коментами проблем вызвать не должно).
Единственно предупрежу - при записи уставок ГРУБО, ТОЧНО выставляет флаг Exception хотя запись проходит успешно.
Решение - читать после записи уставки и проверять записались или нет (реализованно в программе).
Всё остальное работает чётко и отлаженно. Проверенно на железе Тензо-М(С415) + ПЛК110-32 + SCADA.
Реализованно:
Запись
-Обнуление Веса
-Старт дозирования
-Запись уставки ГРУБО
-Запись уставки ТОЧНО
Чтение
-Вес
-Уставка ГРУБО
-Уставка ТОЧНО
-Признак НОЛЬ
-Признак СТАБИЛЬНОСТЬ ВЕСА
-Признак ДОЗИРОВАНИЕ
Выложил бы и сам проект, но по каким-то известным только администраторам причинам я могу прекрипить только картинку или видео ))))))))))
Кирилл Валюнин
12.05.2014, 21:12
Используйте в Расширенном режиме сообщения иконку Вложения. Типы файлов для всех одинаковые. Можно как проект , так и все вместе архивом (например, rar)
Думаю, многим программа пригодится в качестве примерахва
Вот собственно и сам проект.
Описание выше, также описание есть в проекте и доходчиво всё закоментированно.
Если возникают вопросы пишете поможем чем сможем)))
Так как на данную программу затрачены время и соответственно средства компании ARM-PRO_Automatics приведу ниже следующее --->
По вопросам сотрудничества обращаться:
Мелентьев Антон Владимирович
ARM-PRO_Automatics
Сот:+79225553559
E-mail: day02@mail.ru
Aleksey9952
09.06.2015, 18:22
Добрый день, у меня такая же проблема как и у deniska6666, не могу вывести вес на контроллер и в собственно увидеть его в кодесисе. как пишет руководство по установке, необходимо использовать функцию 03, адрес 133,4 байта. но, в итоге одни нули... чего с ним делать?
1853418535
murdemon
09.06.2015, 18:37
Номер регистра зависит от версии прошивки..
Aleksey9952
09.06.2015, 23:34
все делаю по документации которая прилагается к терминалу с данной прошивкой...
Андрей007
19.08.2015, 22:47
Раз уж тема Тензо-м уже есть подскажите никто не писал код в CoDeSys 2.3 для обмена по протоколу Тензо-м (нестандартному)?
Особенно интересно не написал ли кто кода для расчёта CRC по предложенному алгоритму?
И сразу попрошу, если кто-нибудь может, переведите на ST вот этот код:
Ниже приведен пример формирования CRC в виде ассемблерной вставки для C++
BYTE CDeviceTestDlg::CRCMaker(BYTE b_input, BYTE b_CRC)
{
__asm
{
mov al,b_input
mov ah,b_CRC
mov cx,8
mod1: rol al,1
rcl ah,1
jnc mod2
xor ah,69h
mod2: dec cx
jnz mod1
mov b_CRC,ah
}
return b_CRC;
При формировании CRC используется примитивный неприводимый порождающий полином в 8-й степени
P(X)-101101001b (младшая часть 69h). На передающей стороне в конце массива используется нулевой байт (00h).
Подставляя в переменную b_input байты массива, включая нулевой байт, вычисляется CRC код с помощью
подпрограммы CRCMaker. При передаче массива нулевой байт заменяется вычисленным байтом CRC. На
принимающей стороне вычисляют CRC, подставляя в b_input байты принятого массива, включая принятый CRC
код. Если вычисленный CRC будет равен нулю, то массив принят правильно. Вначале приема/передачи перед
вычислением CRC в переменную b_CRC записывается ноль. По вставленному и выброшенному FEh CRC не
вычисляется.
ссылка на документ:
http://www.tenso-m.ru/pdf/tv19protocol.pdf
Sergey666
19.08.2015, 23:01
Раз уж тема Тензо-м уже есть подскажите никто не писал код в CoDeSys 2.3 для обмена по протоколу Тензо-м (нестандартному)?
Особенно интересно не написал ли кто кода для расчёта CRC по предложенному алгоритму?
И сразу попрошу, если кто-нибудь может, переведите на ST вот этот код:
Ниже приведен пример формирования CRC в виде ассемблерной вставки для C++
BYTE CDeviceTestDlg::CRCMaker(BYTE b_input, BYTE b_CRC)
{
__asm
{
mov al,b_input
mov ah,b_CRC
mov cx,8
mod1: rol al,1
rcl ah,1
jnc mod2
xor ah,69h
mod2: dec cx
jnz mod1
mov b_CRC,ah
}
return b_CRC;
При формировании CRC используется примитивный неприводимый порождающий полином в 8-й степени
P(X)-101101001b (младшая часть 69h). На передающей стороне в конце массива используется нулевой байт (00h).
Подставляя в переменную b_input байты массива, включая нулевой байт, вычисляется CRC код с помощью
подпрограммы CRCMaker. При передаче массива нулевой байт заменяется вычисленным байтом CRC. На
принимающей стороне вычисляют CRC, подставляя в b_input байты принятого массива, включая принятый CRC
код. Если вычисленный CRC будет равен нулю, то массив принят правильно. Вначале приема/передачи перед
вычислением CRC в переменную b_CRC записывается ноль. По вставленному и выброшенному FEh CRC не
вычисляется.
ссылка на документ:
http://www.tenso-m.ru/pdf/tv19protocol.pdf
Товарищ! Мое соболезнование примите ! Этот бред я уже читал когда-то и принял решение не работать с тензо-м по каким-либо протоколам . А лучше вообще никак не работать с тензо-м , т.к из текста видно что они что-то курят неизвестное науке;) .
murdemon
20.08.2015, 07:37
там у них в стандартном то modbus от прошивки к прошивки все регистры разные и не совпадают с документацией что уж тут говорить от их протоколе...
там у них в стандартном то modbus от прошивки к прошивки все регистры разные и не совпадают с документацией что уж тут говорить от их протоколе...
Просто они работают на себя.
Андрей007
23.08.2015, 23:35
Товарищ! Мое соболезнование примите ! Этот бред я уже читал когда-то и принял решение не работать с тензо-м по каким-либо протоколам . А лучше вообще никак не работать с тензо-м , т.к из текста видно что они что-то курят неизвестное науке;) .
Подскажите тогда с какой фирмой производителем весов в России вы посоветуете работать?
Sergey666
24.08.2015, 08:37
Подскажите тогда с какой фирмой производителем весов в России вы посоветуете работать?
Пичалька ... Х.З !:confused:
Все настолько забубенные , как будто В.И Ленин дистанционно зомбировал будущие поколения своим -" Мы пойдем своим путем "
Если дозаторы нужны посмотрите в сторону Инсатовских "Мастеров" . По крайней мере 3...5 лет они отрабатывают ... хотя глюки не исключены , если глючит - матюки и перезагрузка .
А если нормально работать надо то... народная марка CAS :D !
P.S Недавно пробовал наладить связь (модбас рту :p) с дозаторами относительно "новой" фирмы московской (не буду говорить название , приборы обзываются КВ-ххх). И что ? Из 4х отвечают 2 , настройки правильные . дело или в кривых прошивках или несоответствии документации , у них даже ума не хватило создать единую для всей линейки карту регистров . В общем культура-технология производства готовых приборов в России ... мягко говоря не развивается .
Вот такой вот у нас капитализм.
Спрос есть, где предложение? Почему не рождает? Бесплоден?
Стартап надо замутить, парни. Вон, Атман работает - залюбуешься.
Недавно тоже мутил с Тензо-М, только на Дельте. Опрос написал, из косяков 5% битых пакетов от Тензы.
На одном терминале плясал с нерабочими портами. Писал пару раз в техподдержку, отвечали типа у нас всё хорошо, сам дурак.
Чему равен спрос в рублях и штуках в год?
Уже бизнес план пишешь? Шустро.:D
Нет. Просто показываю, почему все так хреново.
Замечу, что у ОВЕНа а первых приборах было тоже самое - у каждого свой протокол т т.п. По той же причине.
AndreyWishnevskiy
26.05.2016, 19:02
Авось поможет.
Благодарю! Мне помогло :)
ДаниилСПб
25.10.2016, 13:04
Добрый день, столкнулся с похожей проблемой.
Плк 154 и ТВ-006С
http://www.tenso-m.ru/pdf/re/TV_006_C41X_RE.pdf
из РЭ ТВ-006С: регистр 307, функция 3, значение веса, float
считываю как real input module 307 регистр, получаю при весе 1,000 значение: "2,277951е-041"
при весе 0,000 получаю: "0"
Кто нибудь сталкивался с таким? Что это за формат float или что я делаю не так?
ДаниилСПб
26.10.2016, 10:45
Помогло изменение параметра "byte sequence" на "native" :cool:
А почему не пользуемся МВ-110-4тд. У меня хорошо работает дозирование в связке ПЛК100-МВ-110_4тд-мдвв.
Эх, все хорошо с тд да нужно для заказчика цифровая индикация по месту крупными цифрами, а для весового поверителя сертифицированный терминал.. Скоро мне предстоит вязать тв-006с с плк100 вовремя тема поднялась.
Библиотека Modbas тебе в помощь. Я отказался. Терминал теперь висит для красоты.
genchik, а что через конфигуратор не получается? Буду пробовать через конфигуратор, а если что в запасе есть 4тд..
Аскар_73
10.06.2018, 10:14
Доброго времени суток! На предприятии где я тружусь имеется Дозатор в месте с ним Тензо-Мвский контроллер ТВ-006! Помогите пожалуйста с вопросом как организовать обычную дискретную логику! Задание простое! По достижению уставки по весу отключался шнек! При чем в работе думаю задействовать ПЧВ2 от ОВЕН. т.к при режиме точно нужно уменьшать скорость шнека!
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot