Сайт Кандирала Руслана

Фото Кандирала РусланаЗдравствуйте! Меня зовут Кандирал Руслан, мне 36 лет. Я уже долгое время занимаюсь программированием в разных направлениях и решил поделиться своими наработками с интернет публикой.

Основная цель сайта - помочь людям, столкнувшимся с проблемами, которые мне удалось решить в свое время, а также выявить возможные ошибки в моих кодах.

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

Распространение содержимого сайта может осуществляться без моего согласия и без выплаты вознаграждения, но с обязательным указанием источника. За финансовую поддержку буду весьма признателен.

 
Поделиться:
0
Динар Ишмухаметов
17.05.2018 13:09
 
Доброго времени суток.В Delphi необходимо реализовать постройку графика реального процесса(с датчика на выходе) и модели данного процесса(через разностное уравнение).В связи с этим на входе реального и модельного процессов будут подаваться показания параметра давления с одного датчика.После чего по этому давлению будет происходить расчет модели на выходе на основании разностного уравнения.Второй датчик будет использован для вывода графика с реального процесса.И в итоге будут выводиться два графика один по модели другой по реальному процесса.Вопрос:как реализовать такие фиктивные датчики?Обязательно ли применять ПЛК?Какие из Ваших наработок,по вашему мнению,лучше тут применить?
Показать полностью
5
Руслан Кандирал
17.05.2018 14:04
Динар Ишмухаметов
 
Здравствуйте.

Как я понял вас интересует связь по протоколу modbus между программой на Delphi и условными датчиками.

Для имитации сигналов нужно делать отдельную программу с Modbus Slave. Но у меня в компонентах еще не реализовано Modbus Slave. В принципе, для обработки двух сигналов можно сделать простой обработчик пакетов.

Если для связи используется COM-порт, то можно использовать com0com.

Если для связи используется TCP/IP, то для имитации сигналов в программе имитаторе нужно делать TCPServer.

Для прорисовки графиков у меня компонентов нет. Недавно задача построения графика, я использовал TJvChart. Когда-то давно делал график с помощью TChart
Показать полностью
0
Динар Ишмухаметов
17.05.2018 21:22
Руслан Кандирал
 
еще вопрос,Руслан,а я могу использовать modbus RTU для осуществления передачи данных с фиктивного датчика давления на модель?
Показать полностью
5
Руслан Кандирал
18.05.2018 08:58
Динар Ишмухаметов
 
Правильно я вас понял? Датчиков у вас нет и вы хотите имитировать сигнал?

В таком случае вам нужна программа(эмулятор) которая будет имитировать сигнал и по запросу генерировать modbus slave пакеты.
Тут есть два варианта:
1) Сделать эмулятор самому. (в моем пакете компонентов modbus slave нет)
2) Скачать в интернете готовый эмулятор. (google по запросу "имитация сигнала modbus" выдает довольно много вариантов. Я такими программами не пользовался, по этому посоветовать ничего не могу)

Далее, вам нужно делать программу на Delphi которая будет получать сигналы и строить графики. Для реализации связи по протоколу Modbus RTU вам поможет пример
https://kandiral.ru/delphi/primer_pereda...

Если вам нужно использовать modbus RTU значит связь будет через COM порт. Для связи эмулятора и вашей основной программы можно использовать com0com. com0com - это бесплатная утилита которая создает пары виртуальных COM портов между которыми происходит передача данных. Создаете пару портов, к одному подключается эмулятор, а ко второму ваша программа.
Показать полностью
0
Динар Ишмухаметов
17.05.2018 20:25
Руслан Кандирал
 
Хорошо,спасибо
Показать полностью
0
Иван Иванов
10.05.2018 08:10
 
Добрый день.
Есть инструкция или возможность собрать пакет под Delphi 2007?
Показать полностью
5
Руслан Кандирал
10.05.2018 09:08
Иван Иванов
 
Здравствуйте
Нет. Такой инструкции нет.
Пакет разрабатывался под Delphi XE и проверялся под некоторые версии выше.
Можете попробовать, но как мне кажется могу возникнуть сложности. Как минимум из-за того, что Delphi 2007 не юникодовская версия.
Я думаю проще будет перейти на Delphi XE
Показать полностью
0
Иван Иванов
18.05.2018 08:59
Руслан Кандирал
 
Получается компонент для ModBus реализует только мастер устройство?
Показать полностью
5
Руслан Кандирал
20.05.2018 20:57
Иван Иванов
 
Да. Slave только планирую сделать
Показать полностью
0
Слава Тетерин
01.03.2018 12:08
 
Руслан, в говорите что KRComPort это не компонент . Тогда подскажите как пользоваться портом. Раньше я использовал AcyncFree в Borland Delphi 7. Мне нужно читать данные с порта и отправлять в порт. В идеале бы событие по приему, коннекте и дисконнекте. Может у вас пример есть?
Показать полностью
5
Руслан Кандирал
01.03.2018 12:32
Слава Тетерин
 
Если старая версия устанавливалась, то ставьте старую.
Давайте я вам вечером сделаю программу перенаправленния данных из порта в порт? Часов в 20(мск).
Показать полностью
0
Слава Тетерин
01.03.2018 09:49
 
Руслан у меня не получается установить сам ComPort. Остальные компоненты встают нормально. Делфи xe8
Показать полностью
5
Руслан Кандирал
01.03.2018 11:00
Слава Тетерин
 
Вы уточняйте почему не получается сделать то или иное действие. Делфи ведь что-то выдает (какую нибудь ошибку)?
Показать полностью
0
Слава Тетерин
01.03.2018 10:30
Слава Тетерин
 
В Файле KRAutomationRigister.pas он не прописан, прописывал его туда в ручную, не компилится. Устанавливал KRComPort в ручную (через component install) он установился, но в палитре не появился.
Показать полностью
5
Руслан Кандирал
01.03.2018 11:16
Слава Тетерин
 
KRComPort - это не компонент, он не устанавливается. Его нужно прописывать вручную.
Пример:
Можете еще посмотреть в файле KRCOMPortConnector.pas, там он используется.
Показать полностью
5
Руслан Кандирал
01.03.2018 10:55
Слава Тетерин
 
Не могу точно сказать в чем у вас проблема. Вот новая версия библиотек
https://kandiral.ru/downloads/Kandiral_0...

Она немного изменилась, и теперь под каждую версию delphi отдельный пакет. Пока есть только для XE и XE7. Я думаю вам подойдет пакет под XE7

Инструкция по установке:
1) Удаляем старую версию и все пути к ней
2) Создаем переменную (Tools->Options->Enviroment Options->Enviroment
Variables) KANDIRAL=Путь к папке библиотек
3) в "Library path"(Tools->Options->Enviroment Options->Delphi
Options->Library) добавить
$(KANDIRAL)\Release\$(ProductVersion)\$(Platform)\
$(KANDIRAL)\Resources\
4)в "Browsing path" (Tools->Options->Enviroment Options->Delphi
Options->Library) добавить:
$(KANDIRAL)\Common
$(KANDIRAL)\Automation
$(KANDIRAL)\File
$(KANDIRAL)\Media
$(KANDIRAL)\Net
$(KANDIRAL)\Utils
$(KANDIRAL)\Graphics
5) запустите Kandiral150.groupproj (для delphi XE) или
Kandiral210.groupproj (для delphi XE7)
6) Делаем build всех пакетов
7) Устанавливаем все пакеты кроме KRMedia
Показать полностью
0
Слава Тетерин
01.03.2018 11:34
Руслан Кандирал
 
Переустановил Делфи. Сделал все по вашей инструкции. Ошибка при компиляции E2199 Packeges ‘KR Common’ both contain unit ‘md5’
Показать полностью
5
Руслан Кандирал
01.03.2018 12:09
Слава Тетерин
 
Удалите из пакета KRCommon файл md5.pas
Показать полностью
0
Слава Тетерин
01.03.2018 12:26
Руслан Кандирал
 
Я удалил, такая дел ошибка возникла еще с несколькими файлами. Я их тоже удалил. Теперь вышла ошибка Е2213 Bad packaged unit format: C:\Program Files\....\KrAutomation.dcp.KRBTConnector - Expected version: 29.0, Windows Unicode (x86) Found version: 22.0, Windows Unicode(x86). Руслан у меня же устанавливалась предидущая версия, я просто не понял как пользоваться компонентом. Может установить обратно ту версию?
Показать полностью
0
maxzz
26.10.2017 13:59
 
Здравствуйте, Руслан!
Попробовал компоненты для работы с MODBUS из Вашей библиотеки. Под Delphi всё работает замечательно, но вот из-под C++ Builder в компоненте KRCOMPortConnector
при присваивании значения свойству Port вылетает ошибка линкера
[ilink32 Error] Error: Unresolved external '__fastcall Krcomportconnector::TKRCOMPortConnector::SetPortW(System::UnicodeString)' referenced from ..\MAINUNIT.OBJ,
в версиях XE2, XE5, XE10.1, причем в XE10.1 то же происходит и в случае присваивания внутри отдельного класса в паскалевском модуле, для присваивания специально написанного
[ilink32 Error] Error: Unresolved external '__fastcall Delphicode::TMyDelphiClass::SetPortW(System::UnicodeString)' referenced from ...\CPPFORM.OBJ
Я понимаю, что, скорее всего, в С++ Вuilder Вы, скорее всего, библиотеку не тестировали, но, возможно у Вас есть соображения, куда копать?
Показать полностью
5
Руслан Кандирал
26.10.2017 23:11
maxzz
 
Честно скажу в C++ Builder работать не приходилось.

Вы можете прислать(выложить на облаке) тестовый проект на C++ Builder который бы коннектился по Modbus используя мои библиотеки. Я попробую запустить его у себя.
Показать полностью
0
Andrey Postolov
26.10.2017 16:33
 
Здравствуйте, Руслан.
На Ваших компонентах практически доделал миниСкаду по ModbusRTU. Но получился затык с Coils и дискретными входами. Компонент ModbusClient у Вас поддерживает только Inputs и Holding. Пробовал ф-ции MBMReadCoils, MBMReadDiscretInputs. Код компилируется, но приложение вылетает с ошибкой. Нет ли у Вас примера работы с этими функциями? Или полнофункционального ModbusClient? Готов купить эти компоненты у Вас.
Показать полностью
5
Руслан Кандирал
26.10.2017 22:47
Andrey Postolov
 
Здравствуйте, Андрей

Функции протокола Modbus по работе с coils я уже сделал, но еще не выложил обновленный набор библиотек на сайте.
Но, так как мне еще не приходилось использовать coil функции, я их до сих пор не протестировал.

Вот можете скачать версию библиотек на текущий момент:
https://kandiral.ru/downloads/Kandiral_2...


Способ установки библиотек немного изменился
- В настройках Delphi в разделе Enviroment Variabels нужно добавить переменную с именем KANDIRAL, а значение должен быть путь к папке с библиотеками. Например: D:\Kandiral
- В настройках Delphi в разделе Library в поле Library path, в самый конец строки добавить ;$(KANDIRAL)\Release\$(ProductVersion)\$(Platform)\
- В настройках Delphi в разделе Library в поле Browsing path, в самый конец строки добавить ;$(KANDIRAL)\Common;$(KANDIRAL)\Automation;$(KANDIRAL)\File;$(KANDIRAL)\Media;$(KANDIRAL)\Net;$(KANDIRAL)\Utils;$(KANDIRAL)\Graphics


И еще в новой версии библиотек пакеты распределены по версиям платформа. Сейчас есть только для Delphi XE и Delphi XE7.
Показать полностью
0
Andrey Postolov
29.10.2017 15:05
Руслан Кандирал
 
Руслан, спасибо за обновление, но попробовать нет возможности ( у меня ХЕ5). Поэтому вопрос: как из ф-ций ReadReadCoils и ReadDiscretInputs вытащить данные в произвольную переменную? Подсунул пустую CallBack, а вот дальше запутался с указателями.
Показать полностью
5
Руслан Кандирал
29.10.2017 18:02
Andrey Postolov
 
Вот пример получения значения coil с адресом 0. Чтение значения дискретных входов аналогичное
Показать полностью
0
Павел Бородай
04.04.2017 15:14
 
А можно пример работы с модемом????
Показать полностью
5
Руслан Кандирал
04.04.2017 16:37
Павел Бородай
 
Я делал библиотеку под модем для контроллера ОВЕН.
Функционал:
- прием/отправка смс сообщений
- USSD
- интернет
- синхронизация времени по NTP
Библиотеку делал давно и есть уже некоторые моменты, которые хочу переделать.
Я планировал сделать ее описание после доработки.

Я могу выслать вам эту библиотеку, она с открытым кодом но без комментариев. Или могу сделать описание того варианта который есть сейчас и выкинуть на сайт до конца недели. На доработку у меня сейчас нет времени.
Показать полностью
0
Павел Бородай
05.04.2017 13:38
Руслан Кандирал
 
Если можно то пришлите мне эту библиотеку
Показать полностью
5
Руслан Кандирал
05.04.2017 15:05
Павел Бородай
 
Отправил вам на почту
Показать полностью
0
Павел Бородай
05.04.2017 15:34
Руслан Кандирал
 
Спасибо получил!! Прошу прощения но я наверно неправильно поставил вопрос, меня интересует как пользоваться в DELPHI KRModem.pas в вашем наборе компонентов
Показать полностью

Новости сайта

06.02.2018 15:53
Добавлена программа SimpleADB
Программа SimpleADB разработана в среде Delphi XE для отладки Android устройств через утилиту adb
07.10.2017 23:57
Оптимизация библиотек Modbus для контроллеров Arduino
Сделал оптимизированный вариант библиотек Modbus под Arduino, с целью снизить размер занимаемой памяти для скетча
28.03.2017 23:51
Modbus Slave RTU/ASCII для микроконтроллеров Arduino
Реализация клиентской части протокола Modbus RTU и Modbus ASCII для контроллеров Arduino и пример использования с видео обзором

Популярные статьи

Пример передачи данных по протоколу Modbus на Delphi
Пример передачи данных с контроллера ОВЕН ПЛК100 в программу на Delphi по протоколу Modbus
Modbus Slave на Arduino
Реализация клиентской части протокола Modbus RTU и Modbus ASCII для контроллеров Arduino
Программа SimpleADB
Программа SimpleADB для отладки Android устройств, работающая посредством утилиты adb(Android Debug Bridge)