Передача данных с терминала Тензо-М на контроллер Siemens
-
- Любитель
- Сообщения: 70
- Зарегистрирован: 10 янв 2016, 00:35
Re: Передача данных с терминала Тензо-М на контроллер Sieme
Посмотрите мой пост выше
Re: Передача данных с терминала Тензо-М на контроллер Sieme
В ТИА Портале есть замечательная функция SWAP, которая перевернет байты так, как надо. Работает как для слова, так и для двойного слова. Она заменит сразу четыре первых блока из Вашей программы в Step7.Andrey.wys писал(а):Обратите внимание, что масса передается в BCD little endian.
-
- Любитель
- Сообщения: 70
- Зарегистрирован: 10 янв 2016, 00:35
Re: Передача данных с терминала Тензо-М на контроллер Sieme
В stl есть caw и cad, но мне так показалось нагляднее.
Re: Передача данных с терминала Тензо-М на контроллер Sieme
В LAD нету аналогов CAW/CAD?
-
- Любитель
- Сообщения: 70
- Зарегистрирован: 10 янв 2016, 00:35
Re: Передача данных с терминала Тензо-М на контроллер Sieme
Я не нашел, хотя я сильно не искал.
Re: Передача данных с терминала Тензо-М на контроллер Sieme
Ну в старом Step7 все так и есть: совместимость языков ограничена, STL более функциональный. В ТИА Портале объявлена война несовместимости языков = неразвитости LAD/FBD, теперь эти языки широкофункциональны. Но теперь они не дотягивают до SCL. Но это уже история S7-2200.
Re: Передача данных с терминала Тензо-М на контроллер Sieme
Добрый день, подскажите пожалуйста по протоколу Тензо-м. Не могу организовать обмен данными,
Конфигурация порта прошла нормально, отправка тоже идет без ошибок, а вот принимать не чего не удается, точнее я даже ошибки не получаю, совсем не чего.
Отправку
https://prnt.sc/ldlz5w
Данные которые я отправляю
https://prnt.sc/ldlvrv
Выдержка из инструкции
https://prnt.sc/ldlxk4
то что хочу забрать
https://prnt.sc/ldm024
Прием данных
https://prnt.sc/ldlp3x
Контролирую счетчиками посылку и прием, посыл я вижу считает нормально, и ответ я пытаюсь получить, команду для этого я отправляю, а вот получения не какого я не получаю. Прощу помощи уважаемые эксперты.
я хотя бы правильно формирую пакет, он реально выглядит как нужно для запроса?
FF 01 C3 E3 FF FF
Именно это поступает на устройство?
Инструкция на протокол
https://www.tenso-m.ru/pdf/protocoli/pPt-1_06.pdf
Конфигурация порта прошла нормально, отправка тоже идет без ошибок, а вот принимать не чего не удается, точнее я даже ошибки не получаю, совсем не чего.
Отправку
https://prnt.sc/ldlz5w
Данные которые я отправляю
https://prnt.sc/ldlvrv
Выдержка из инструкции
https://prnt.sc/ldlxk4
то что хочу забрать
https://prnt.sc/ldm024
Прием данных
https://prnt.sc/ldlp3x
Контролирую счетчиками посылку и прием, посыл я вижу считает нормально, и ответ я пытаюсь получить, команду для этого я отправляю, а вот получения не какого я не получаю. Прощу помощи уважаемые эксперты.
я хотя бы правильно формирую пакет, он реально выглядит как нужно для запроса?
FF 01 C3 E3 FF FF
Именно это поступает на устройство?
Инструкция на протокол
https://www.tenso-m.ru/pdf/protocoli/pPt-1_06.pdf
-
- Любитель
- Сообщения: 70
- Зарегистрирован: 10 янв 2016, 00:35
Re: Передача данных с терминала Тензо-М на контроллер Sieme
Вы сначала к модулю компьютером подключитесь и посмотрите терминалом что он отправляет. Потом отправьте данные и посмотрите прием в контроллере.
Re: Передача данных с терминала Тензо-М на контроллер Sieme
Если я Вас правильно понял то для этого как минимум нужен преобразователь RS485 USB и программа для перехвата пакетов проверяющая что приходит на указанный порт? Так ли это? Откровенно говоря этого под рукой нет и сейчас даже приобрести не получится, возможно есть возможность обойтись без этого??
-
- Любитель
- Сообщения: 70
- Зарегистрирован: 10 янв 2016, 00:35
Re: Передача данных с терминала Тензо-М на контроллер Sieme
Попробуйте передать FF01C3E3FFFF, у вас в С4 лежит 16#10, а не 16#E3 Для теста в SendPTP.REQ поставьте блинкер раз в секунду, а в RCV.EN_R всегда единицу.
Re: Передача данных с терминала Тензо-М на контроллер Sieme
В СМ4 находится Е3, на скрин случайно попало это значение, просто ставил эксперимент с другими данными.
После того как я изменил входа на блоках отправки и получения, не чего не изменилось, я так же получаю успешную отправку пакетов, а вот получения не происходит.
После того как я изменил входа на блоках отправки и получения, не чего не изменилось, я так же получаю успешную отправку пакетов, а вот получения не происходит.
-
- Любитель
- Сообщения: 70
- Зарегистрирован: 10 янв 2016, 00:35
Re: Передача данных с терминала Тензо-М на контроллер Sieme
Сравнивайте настройки портов в сименсе и весовом контроллере. Они должны быть одинаковыми. Возможно у вас скорость не совпадает. Без теста с компьютером вам будет сложно разобраться.
Re: Передача данных с терминала Тензо-М на контроллер Sieme
настройки проверял и даже скорость старался снизить с целью увеличения надежности, но увы...
Я Вас понял, спасибо, видимо просто поставлю OPS сервер. Если не найду чем подключить к ПЛК и весам
Я Вас понял, спасибо, видимо просто поставлю OPS сервер. Если не найду чем подключить к ПЛК и весам
-
- Любитель
- Сообщения: 70
- Зарегистрирован: 10 янв 2016, 00:35
Re: Передача данных с терминала Тензо-М на контроллер Sieme
А у вас точно RS485 в весовом контроллере? У меня к сименсу по RS232 подключение.StudAsu писал(а):настройки проверял и даже скорость старался снизить с целью увеличения надежности, но увы...
Я Вас понял, спасибо, видимо просто поставлю OPS сервер. Если не найду чем подключить к ПЛК и весам
Re: Передача данных с терминала Тензо-М на контроллер Sieme
На весовом терминале указано RS232/RS485, варианта выбрать какой то именно нет, но в инструкции указано что пользуйтесь любым в зависимости от того что читает принимающая сторона.
-
- Любитель
- Сообщения: 70
- Зарегистрирован: 10 янв 2016, 00:35
Re: Передача данных с терминала Тензо-М на контроллер Sieme
Проверяйте, что вы действительно подключены по rs485 и настройки подключения с обоих сторон правильные
Re: Передача данных с терминала Тензо-М на контроллер Sieme
Недавно писал обмен с Тензо-М, но на Дельте.
Терминал ТВ-003П
Распиновка DB9:
2 Rx RS232
3 Tx RS232
5 Gnd RS232
7 A+ RS485
8 B- RS485
9 Общий (Gnd???) RS485
Я связывался по RS485
Параметры связи по умолчанию: 19200-8-N-1 (Подстраивался под весы, чтобы в случае замены весов ничего не перенастраивать)
Запрос на передачу веса Нетто: FF 01 C2 8A FF FF
Терминал ТВ-003П
Распиновка DB9:
2 Rx RS232
3 Tx RS232
5 Gnd RS232
7 A+ RS485
8 B- RS485
9 Общий (Gnd???) RS485
Я связывался по RS485
Параметры связи по умолчанию: 19200-8-N-1 (Подстраивался под весы, чтобы в случае замены весов ничего не перенастраивать)
Запрос на передачу веса Нетто: FF 01 C2 8A FF FF
-
- Любитель
- Сообщения: 70
- Зарегистрирован: 10 янв 2016, 00:35
Re: Передача данных с терминала Тензо-М на контроллер Sieme
Я когда-то написал программу для подсчета контрольной суммы для тензо-м. Никаких юнит-тестов и проверок на ввод данных не содержит. Делалось на коленке для себя. Может кому пригодится.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Re: Передача данных с терминала Тензо-М на контроллер Sieme
А можно на пальцах (берем это, умножаем на это...) объяснить, как считается CRC у Тензо-М? Читал инструкцию в мануале, но не понял(((
-
- Любитель
- Сообщения: 70
- Зарегистрирован: 10 янв 2016, 00:35
Re: Передача данных с терминала Тензо-М на контроллер Sieme
Вот на пальцах
Код: Выделить всё
Public Class Form1
Public Function CRC8(ByVal Bytes As Byte) As Byte
Dim crc As Byte = &H0
Dim Poly As Byte = &H69
Dim j As Integer
Dim Data, fb As Byte
Data = Bytes
fb = crc
For j = 0 To 7
fb = Data Xor crc
fb = fb >> 7
crc = crc << 1
Data = Data << 1
If fb = 1 Then
crc = crc Xor Poly
End If
Next
Return crc
End Function
Private Sub CalcCRCButton_Click(sender As Object, e As EventArgs) Handles CalcCRCButton.Click
Dim SummCRC As Byte = &H0
If TextBoxCRC1.Text <> "" Then
SummCRC = CRC8(Convert.ToByte(TextBoxCRC1.Text, 16))
If TextBoxCRC2.Text <> "" Then
SummCRC = CRC8(SummCRC Xor Convert.ToByte(TextBoxCRC2.Text, 16))
If TextBoxCRC3.Text <> "" Then
SummCRC = CRC8(SummCRC Xor Convert.ToByte(TextBoxCRC3.Text, 16))
If TextBoxCRC4.Text <> "" Then
SummCRC = CRC8(SummCRC Xor Convert.ToByte(TextBoxCRC4.Text, 16))
If TextBoxCRC5.Text <> "" Then
SummCRC = CRC8(SummCRC Xor Convert.ToByte(TextBoxCRC5.Text, 16))
End If
End If
End If
End If
End If
CRC.Text = Hex(SummCRC)
End Sub