Страница 3 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 21 по 30 из 41

Тема: Библиотека ModbusRTU

  1. #21

    По умолчанию

    Я не знаю как прописывать в коде С, чтобы функции стали доступны для С#
    Ну вот это ты не пояснил.
    Я только через .def знаю, если речь о DLL-библиотеке

    Если у тебя там вообще .obj - то тогда смотри в сторону директивы extern
    То есть примерно так:
    * Что-то в .h объявляется как extern - и компилятор знает, что "где-то будет объявлено, линковщик разберётся"
    * Где-то пишется реализация этих функций (или уже есть .obj с ними, скомпиленный)
    * .h подключается там, где будут использовать
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab

  2. #22

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Всё. ПошОл поток сознания у тебя, как обычно
    Или вон я нашёл https://stackoverflow.com/questions/...-sharp-program
    Я тоже ничего не понимаю. Поиск мухой нашёл:
    https://mywebcenter.ru/rabota-s-nati...kami-v-c-4357/
    Всё буквально разжёвано, да ещё и с примерами.

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

    По умолчанию

    O5-25 - мне не надо говорить КАК использовать функции. я знаю как и использовал. Речь о том, что в коде Си, надо определить, что функции БУДУТ бл ДОСТУПНЫ....

    Я не знаю Си и не особо хочу вникать (на это надо уйму времени)... просто бибки люди делают либо с доступными для других языков функциями, либо блин без (только из Си и можно пользоваться)

    Опять не понимаете о чем я спрашиваю? сколько раз мне это надо повторить?

    то есть сама библиотека Си либо позволяет, либо не позволяет, и если второе, там хоть 100 раз пиши DllImport, получишь шишь с маслом.
    когда-то думал что так можно со всеми, пока не нарвался что низя. Хотя из Си кода к этой же библиотеке обращаются без всяких проблем.
    Последний раз редактировалось melky; 25.09.2025 в 17:19.

  4. #24

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение

    то есть сама библиотека Си либо позволяет, либо не позволяет.
    А просто попробовать не получается?

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

    По умолчанию

    Aleksander8 так пробовал когда-то . кто-то смотрел, сказал надо настраивать экспорт.

    пример для Вынь (вроде)
    extern "C" __declspec(dllimport) int changefirstletter(WCHAR* teststring)
    {
    teststring[0] = 'X';
    return 0;
    }
    https://dalelane.co.uk/blog/?p=271

    а вот примеров толковых для Lin не находил. Ну и там много, много, много, и где и что надо открывать я хз, так как не знаю Си.

  6. #26

    По умолчанию

    Я не об этом. Я дал вам ссылку на библиотеку. Что мешает вам её использовать?

  7. #27

    По умолчанию

    Я использую MSComm и Winsock, которые входят в стандартные OCX-библиотеки VB6.0, хорошо документированы, хорошо встраиваются в событийно-зависимый интерфейс VB-приложений. Все протоколы реализованы на чистом VB6.0 с использованием всех возможностей ООП. Реализован много-поточный опрос без применения многозадачности и т.д. Без каких либо внешних DLL и другого геморроя. Всё это очень мешает мне использовать именно Вашу библиотеку.

  8. #28

    По умолчанию

    Цитата Сообщение от EFrol Посмотреть сообщение
    Я использую MSComm
    , который является прокладкой между VB 6.0 и Win32API. Раньше я тоже его использовал. Была проблема с количеством принятых байт. Стал использовать напрямую функции Win32API, вызывая их из VB 6.0. Сало намного удобнее, т.к. я точно знаю сколько байт отправляю и сколько принимаю. Но это потребовало ещё одного модуля с кучей функций. Убрал весь этот хлам в библиотеку. Количество кода уменьшилось. Перестало рябить в глазах.
    Точно уже не помню, система не ругается на MsComm, если на компьютере не установлена IDE VB?

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

    По умолчанию

    Aleksander8, так Модбас мне особо не нужен, просто спросил, вдруг знаете как готовить и подскажете

  10. #30

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Aleksander8, так Модбас мне особо не нужен, просто спросил, вдруг знаете как готовить и подскажете
    Проверьте.
    На форме тектсовое поле для ввода, текстовая метка для вывода и две кнопки.
    Подключаете библиотеку так, как положено в C#. Вот код на VB 6.0, его надо переписать на C#:

    Option Explicit - проверяет инициализацию переменных и пр. ошибки в коде.
    Тут декларации для вызова ыункций библиотеки.
    Private Declare Function ieee754 Lib "ModbusRTU.dll" _
    (ByRef Arr As Byte) As Single
    Private Declare Sub float32ToBuffer Lib "ModbusRTU.dll" _
    (ByRef Arr As Byte, ByVal Num As Single)
    Переменные:
    Private Inp As Single - В С++ = float
    Private i As Integer - В С++ = unsigned int
    Private Arr(1 To 4) As Byte - В С++ = массив Char

    Private Sub Command1_Click() Обработка события нажатия на кнопку "старт"
    Inp = CSng(Text1.Text) Число , введённое в текстовое поле преобразуем в float
    Call float32ToBuffer(Arr(1), Inp) Вызываем библиотечную функцию, не возвращающую параметра (void),
    которая заполняет массив Байтами. "Старший вперёд"
    For i = 1 To 4

    Label2.Caption = Str(Arr(1)) & " " & Str(Arr(2)) & " " _
    & Str(Arr(3)) & " " & Str(Arr(4)) Выводим байтовый массив в текстовую метку, преобразуя байты в строку с пробелами между байтами.
    Next i
    Label1.Caption = ieee754(Arr(1)) Вызываем функцию библиотеки. Функция возвращает float из байтового массива.
    End Sub

    Private Sub Command2_Click() реакция на событие нажатия кнопки "Выход". Завершаем работу программы.
    Unload Form1
    End Sub

Страница 3 из 5 ПерваяПервая 12345 ПоследняяПоследняя

Похожие темы

  1. МВ110-224.2А и ModbusRTU
    от Грек в разделе Мх110
    Ответов: 4
    Последнее сообщение: 31.08.2023, 10:19
  2. ИПП 120, ModbusRTU и Arduino
    от Дмитрий Александрович в разделе Программируемые реле
    Ответов: 8
    Последнее сообщение: 28.06.2022, 17:33
  3. ПЛК110 + ПМ 01 и ModBusRTU
    от ZilkinHvost в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 23.04.2015, 19:46
  4. МСД-200 ModbusRTU Slave
    от LexSL в разделе Эксплуатация
    Ответов: 12
    Последнее сообщение: 14.12.2013, 11:09
  5. МУ110-16Р и команда 16 ModbusRTU
    от GilmiyarovKR в разделе Эксплуатация
    Ответов: 3
    Последнее сообщение: 04.11.2012, 17:11

Ваши права

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