Страница 6 из 6 ПерваяПервая ... 456
Показано с 51 по 60 из 60

Тема: Объединение 1С с промышленным оборудованием.

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,016

    По умолчанию

    Dmitry Simonov ну ок - вы купите пример, который потом будете допиливать и перепиливать. Ваше право. Железо то вам для диплома зачем промышленного исполнения? Преподу домой понадобился модуль аналогового ввода МВ110-2А ?

    А ничего что это RS485-ое устройство, а ссылка на пример для Modbus TCP? вас не смущает?

    Тут как бы самый первый вопрос возникает: Зачем Козе баян?

  2. #2

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Dmitry Simonov ну ок - вы купите пример, который потом будете допиливать и перепиливать. Ваше право. Железо то вам для диплома зачем промышленного исполнения? Преподу домой понадобился модуль аналогового ввода МВ110-2А ?

    А ничего что это RS485-ое устройство, а ссылка на пример для Modbus TCP? вас не смущает?

    Тут как бы самый первый вопрос возникает: Зачем Козе баян?
    Можно использовать шлюз RS485-USB. Разве нет?

  3. #3

    По умолчанию

    Цитата Сообщение от Dmitry Simonov Посмотреть сообщение
    Можно использовать шлюз RS485-USB. Разве нет?
    Нет, упоминаемый в описании вашей внешней компоненты ModbusTCP подразумевает использование интерфейса Ethernet

  4. #4
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,016

    По умолчанию

    Нужен тогда преобразователь протокола Modbus TCP - Modbus RTU, что будет несколько дороже простого преобразователя USB-RS485. Ну есть у USR-IOT по цене дешевле АС3(4)...
    сомневаюсь, что тот компонент умеет Modbus RTU - over TCP.

  5. #5

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    что тот компонент умеет Modbus RTU - over TCP.
    По косвенным признакам (скриншотам по ссылке) похоже, что именно Modbus TCP. Вот только я ни фига не понял - а как там тип регистра задаётся? В формате адреса регистра?

    Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
    Офигительно. Прямо планету Шелезяка напомнило. Яп очканул такое купить.

  6. #6

    По умолчанию

    В данном архиве находится исходный проект для VB6, который создает dll в виде внешней компоненты для 1С.
    Эта компонента открывает COM-порт, который в свою очередь работал с IR-приемо-передатчиком для связи с ТСД (терминал сбора данных).
    Если Вы с этим разберетесь и добавите туда процедуры обмена по протоколу ModbusRTU, считайте что диплом Вы защитили!!!
    Надеюсь VB6 Вы найдете сами.
    Вложения Вложения
    • Тип файла: zip Cradle.zip (23.3 Кб, Просмотров: 18)

  7. #7

    По умолчанию

    Примерно так выглядит процедура подсчета контрольной суммы для Modbus-пакета:
    Код:
    Public Function Modbus_CRC(ByVal Data As String) As Long
        Dim iByte, iBit As Integer
        
        Modbus_CRC = &HFFFF&
        For iByte = 1 To Len(Data)
            Modbus_CRC = Modbus_CRC Xor Asc(Mid(Data, iByte, 1))
            For iBit = 0 To 7
                If Modbus_CRC Mod 2 > 0 Then
                    Modbus_CRC = Modbus_CRC \ 2
                    Modbus_CRC = Modbus_CRC Xor &HA001&
                Else
                    Modbus_CRC = Modbus_CRC \ 2
                End If
            Next
        Next
    End Function
    а так выглядит функция формирования, отправки и приема:
    Код:
    Public Function Modbus_Query(ByVal Device As Integer, ByVal cmd As Integer, ByVal Addr As Long, ByVal Count As Long, Optional Value As String) As Boolean
        Dim mCRC As Long
        Dim mQuery As String
        
        mQuery = Chr(Device)                                     
        mQuery = mQuery + Chr(cmd)                             
        mQuery = mQuery + Chr(Int(Addr / 8)) + Chr(Addr Mod 256)   
        mQuery = mQuery + Chr(Int(Count / 8)) + Chr(Count Mod 256) 
        mQuery = mQuery + Value
        mCRC = Modbus_CRC(mQuery)
        mQuery = mQuery + Chr(Int(mCRC / 256)) + Chr(mCRC Mod 256)
    
        Modbus_Query = Query(mQuery)
        
        If Modbus_Query And ErrCode = 0 Then
            If Len(Packet) < 2 Then
                ErrCode = -1: Exit Function
            End If
            If Modbus_CRC(Mid(Packet, 1, Len(Packet) - 2)) <> Modbus_readWord(Len(Packet) - 1) Then
                ErrCode = -2: Exit Function
            End If
        
            If readByte(2) > 127 Then
                ErrCode = readByte(3): Exit Function
            End If
        End If
    End Function
    И главное помните: "Дорогу осилит идущий."
    Последний раз редактировалось EFrol; 06.11.2024 в 17:08.

  8. #8
    Пользователь Аватар для Сергей0308
    Регистрация
    25.06.2011
    Адрес
    Галактика Андромеды (M31)
    Сообщений
    9,449

    По умолчанию

    Цитата Сообщение от EFrol Посмотреть сообщение
    Примерно так выглядит процедура подсчета контрольной суммы для Modbus-пакета:
    Код:
    Public Function Modbus_CRC(ByVal Data As String) As Long
        Dim iByte, iBit As Integer
        
        Modbus_CRC = &HFFFF&
        For iByte = 1 To Len(Data)
            Modbus_CRC = Modbus_CRC Xor Asc(Mid(Data, iByte, 1))
            For iBit = 0 To 7
                If Modbus_CRC Mod 2 > 0 Then
                    Modbus_CRC = Modbus_CRC \ 2
                    Modbus_CRC = Modbus_CRC Xor &HA001&
                Else
                    Modbus_CRC = Modbus_CRC \ 2
                End If
            Next
        Next
    End Function
    а так выглядит функция формирования, отправки и приема:
    Код:
    Public Function Modbus_Query(ByVal Device As Integer, ByVal cmd As Integer, ByVal Addr As Long, ByVal Count As Long, Optional Value As String) As Boolean
        Dim mCRC As Long
        Dim mQuery As String
        
        mQuery = Chr(Device)                                     
        mQuery = mQuery + Chr(cmd)                             
        mQuery = mQuery + Chr(Int(Addr / 8)) + Chr(Addr Mod 256)   
        mQuery = mQuery + Chr(Int(Count / 8)) + Chr(Count Mod 256) 
        mQuery = mQuery + Value
        mCRC = Modbus_CRC(mQuery)
        mQuery = mQuery + Chr(Int(mCRC / 256)) + Chr(mCRC Mod 256)
    
        Modbus_Query = Query(mQuery)
        
        If Modbus_Query And ErrCode = 0 Then
            If Len(Packet) < 2 Then
                ErrCode = -1: Exit Function
            End If
            If Modbus_CRC(Mid(Packet, 1, Len(Packet) - 2)) <> Modbus_readWord(Len(Packet) - 1) Then
                ErrCode = -2: Exit Function
            End If
        
            If readByte(2) > 127 Then
                ErrCode = readByte(3): Exit Function
            End If
        End If
    End Function
    И главное помните: "Дорогу осилит идущий."
    Вы шутите, в смысле, студент не знает как датчик подключить!
    Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
    справиться с проблемами, либо это не твои проблемы.

  9. #9

    По умолчанию

    Ну мы же все когда-то были такими же студентами?! Или кто-то сразу родился профессором?!
    Поверьте. Еще год - полтора и они отправят нас на пенсию.

  10. #10

    По умолчанию

    Эти не отправят.
    А те кто что то могут не идут в АСУТП.
    Последний раз редактировалось AlexandrGr; 06.11.2024 в 21:31.

Страница 6 из 6 ПерваяПервая ... 456

Похожие темы

  1. Прогрессивно - ленивое управление оборудованием
    от ВладОвен в разделе Помощь Разработчикам
    Ответов: 8
    Последнее сообщение: 27.02.2023, 09:40
  2. Управление оборудованием сигналом 0-10 V
    от al.pasat в разделе Подбор Оборудования
    Ответов: 5
    Последнее сообщение: 15.10.2020, 12:56
  3. Помогите с оборудованием!
    от Dimon ingener в разделе Подбор Оборудования
    Ответов: 34
    Последнее сообщение: 24.01.2017, 09:36
  4. Удаленное управление оборудованием
    от Anton_Minsk в разделе Сетевые технологии
    Ответов: 10
    Последнее сообщение: 19.02.2016, 20:07
  5. Помогите с оборудованием
    от Krutogor в разделе Подбор Оборудования
    Ответов: 9
    Последнее сообщение: 08.09.2013, 21:38

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •