Передача данных с терминала Тензо-М на контроллер Siemens

ПЛК / Децентрализованная периферия
Andrey.wys
Любитель
Сообщения: 70
Зарегистрирован: 10 янв 2016, 00:35

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Сообщение Andrey.wys »

Посмотрите мой пост выше

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Сообщение Михайло »

Andrey.wys писал(а):Обратите внимание, что масса передается в BCD little endian.
В ТИА Портале есть замечательная функция SWAP, которая перевернет байты так, как надо. Работает как для слова, так и для двойного слова. Она заменит сразу четыре первых блока из Вашей программы в Step7.

Andrey.wys
Любитель
Сообщения: 70
Зарегистрирован: 10 янв 2016, 00:35

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Сообщение Andrey.wys »

В stl есть caw и cad, но мне так показалось нагляднее. :)

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Сообщение Михайло »

В LAD нету аналогов CAW/CAD?

Andrey.wys
Любитель
Сообщения: 70
Зарегистрирован: 10 янв 2016, 00:35

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Сообщение Andrey.wys »

Я не нашел, хотя я сильно не искал.

Михайло
Администратор
Сообщения: 4094
Зарегистрирован: 19 сен 2012, 19:16

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Сообщение Михайло »

Ну в старом Step7 все так и есть: совместимость языков ограничена, STL более функциональный. В ТИА Портале объявлена война несовместимости языков = неразвитости LAD/FBD, теперь эти языки широкофункциональны. Но теперь они не дотягивают до SCL. Но это уже история S7-2200. :)

StudAsu
Дилетант
Сообщения: 5
Зарегистрирован: 13 сен 2018, 11:28

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Сообщение StudAsu »

Добрый день, подскажите пожалуйста по протоколу Тензо-м. Не могу организовать обмен данными,
Конфигурация порта прошла нормально, отправка тоже идет без ошибок, а вот принимать не чего не удается, точнее я даже ошибки не получаю, совсем не чего.
Отправку
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

Andrey.wys
Любитель
Сообщения: 70
Зарегистрирован: 10 янв 2016, 00:35

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Сообщение Andrey.wys »

Вы сначала к модулю компьютером подключитесь и посмотрите терминалом что он отправляет. Потом отправьте данные и посмотрите прием в контроллере.

StudAsu
Дилетант
Сообщения: 5
Зарегистрирован: 13 сен 2018, 11:28

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Сообщение StudAsu »

Если я Вас правильно понял то для этого как минимум нужен преобразователь RS485 USB и программа для перехвата пакетов проверяющая что приходит на указанный порт? Так ли это? Откровенно говоря этого под рукой нет и сейчас даже приобрести не получится, возможно есть возможность обойтись без этого??

Andrey.wys
Любитель
Сообщения: 70
Зарегистрирован: 10 янв 2016, 00:35

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Сообщение Andrey.wys »

Попробуйте передать FF01C3E3FFFF, у вас в С4 лежит 16#10, а не 16#E3 Для теста в SendPTP.REQ поставьте блинкер раз в секунду, а в RCV.EN_R всегда единицу.

StudAsu
Дилетант
Сообщения: 5
Зарегистрирован: 13 сен 2018, 11:28

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Сообщение StudAsu »

В СМ4 находится Е3, на скрин случайно попало это значение, просто ставил эксперимент с другими данными.
После того как я изменил входа на блоках отправки и получения, не чего не изменилось, я так же получаю успешную отправку пакетов, а вот получения не происходит.

Andrey.wys
Любитель
Сообщения: 70
Зарегистрирован: 10 янв 2016, 00:35

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Сообщение Andrey.wys »

Сравнивайте настройки портов в сименсе и весовом контроллере. Они должны быть одинаковыми. Возможно у вас скорость не совпадает. Без теста с компьютером вам будет сложно разобраться.

StudAsu
Дилетант
Сообщения: 5
Зарегистрирован: 13 сен 2018, 11:28

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Сообщение StudAsu »

настройки проверял и даже скорость старался снизить с целью увеличения надежности, но увы...
Я Вас понял, спасибо, видимо просто поставлю OPS сервер. Если не найду чем подключить к ПЛК и весам

Andrey.wys
Любитель
Сообщения: 70
Зарегистрирован: 10 янв 2016, 00:35

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Сообщение Andrey.wys »

StudAsu писал(а):настройки проверял и даже скорость старался снизить с целью увеличения надежности, но увы...
Я Вас понял, спасибо, видимо просто поставлю OPS сервер. Если не найду чем подключить к ПЛК и весам
А у вас точно RS485 в весовом контроллере? У меня к сименсу по RS232 подключение.

StudAsu
Дилетант
Сообщения: 5
Зарегистрирован: 13 сен 2018, 11:28

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Сообщение StudAsu »

На весовом терминале указано RS232/RS485, варианта выбрать какой то именно нет, но в инструкции указано что пользуйтесь любым в зависимости от того что читает принимающая сторона.

Andrey.wys
Любитель
Сообщения: 70
Зарегистрирован: 10 янв 2016, 00:35

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Сообщение Andrey.wys »

Проверяйте, что вы действительно подключены по rs485 и настройки подключения с обоих сторон правильные

and909
Любитель
Сообщения: 30
Зарегистрирован: 07 апр 2016, 18:56

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Сообщение and909 »

Недавно писал обмен с Тензо-М, но на Дельте.

Терминал ТВ-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

Andrey.wys
Любитель
Сообщения: 70
Зарегистрирован: 10 янв 2016, 00:35

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Сообщение Andrey.wys »

Я когда-то написал программу для подсчета контрольной суммы для тензо-м. Никаких юнит-тестов и проверок на ввод данных не содержит. Делалось на коленке для себя. Может кому пригодится.
TenzoCRC.zip
У вас нет необходимых прав для просмотра вложений в этом сообщении.

and909
Любитель
Сообщения: 30
Зарегистрирован: 07 апр 2016, 18:56

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Сообщение and909 »

А можно на пальцах (берем это, умножаем на это...) объяснить, как считается CRC у Тензо-М? Читал инструкцию в мануале, но не понял(((

Andrey.wys
Любитель
Сообщения: 70
Зарегистрирован: 10 янв 2016, 00:35

Re: Передача данных с терминала Тензо-М на контроллер Sieme

Сообщение Andrey.wys »

Вот на пальцах

Код: Выделить всё

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

Ответить