| BG Development · За реклама · За контакти |
Помощ Търсене Потребители Календар Правила |
| Здравей! ( Включване | Регистриране ) |
![]() ![]() ![]() |
| svmarinov |
Публикувано на: 13-02-2017, 18:44
|
|
Име: Светлин Маринов Група: Потребител Ранг: Новопостъпил Мнения: 2 Регистриран на: 13.02.17 |
Привет, имам контролер Шнайдер М340 вързан по ftp. Използва modbus tcp/ip протокол. Необходимо е да използвам променливите му в делфи /както винаги се опитваме да еб.. гявола както фърчи/.
Ще съм благодарен ако някой който се е борил с тази връзка modbus tcp/ip да даде насоки накъде да тръгна/компонента, dll/. Предварително благодаря. инж. Светлин Маринов |
| reason |
Публикувано на: 14-02-2017, 08:33
|
|
Име: Група: Потребител Ранг: Редовен член Мнения: 421 Регистриран на: 24.05.05 |
Има модбъс tcp/ip имплементация писана точно за PLC на python github https://github.com/letterix/modbus-tcp. Като за начало е добре има и библиотеки писани на C . също modbus протокола е добре документиран http://www.modbus.org/docs/Modbus_Messagin...Guide_V1_0b.pdf
Това мнение е било редактирано от reason на 14-02-2017, 08:34 |
| svmarinov |
Публикувано на: 19-02-2017, 17:41
|
|
Име: Светлин Маринов Група: Потребител Ранг: Новопостъпил Мнения: 2 Регистриран на: 13.02.17 |
Намерих еда библиотека Modbus.dll /mail.dir.bg/~svmarinov@dir.bg/Modbus.dll/
на с# със следният код, който се свърза с PLC и работи безупречно using System; using System.Net.Sockets; using Modbus.Device; namespace MySample { public class Driver { static void Main(string[] args) { try { ModbusTcpMasterReadInputs(); ModbusTcpMasterReadHoldingReg(); } catch (Exception e) { Console.WriteLine(e.Message); } Console.ReadKey(); } public static void ModbusTcpMasterReadInputs() { using (TcpClient client = new TcpClient("192.168.2.43", 502)) { ModbusIpMaster master = ModbusIpMaster.CreateIp(client); ushort startAddress = 301; ushort numInputs = 1; bool[] inputs = master.ReadInputs(startAddress, numInputs); for (int i = 0; i < numInputs; i++) Console.WriteLine("Input" + startAddress + "=" + inputs[i]); } } public static void ModbusTcpMasterReadHoldingReg() { using (TcpClient client = new TcpClient("192.168.2.43", 502)) { ModbusIpMaster master = ModbusIpMaster.CreateIp(client); ushort startAddress = 301; ushort numInputs = 5; //------------------------------ poredni holding registri ushort[] test = master.ReadHoldingRegisters(startAddress, numInputs); for (int i = 0; i < numInputs; i++) Console.WriteLine("Address " + startAddress + i + " = " + test[i] ); ushort[] registers =new ushort[] {1112}; master.WriteMultipleRegisters(startAddress, registers); test = master.ReadHoldingRegisters(startAddress, numInputs); for (int i = 0; i < numInputs; i++) Console.WriteLine("Address " + startAddress + i + " = " + test[i]); } } } } Та тъпият въпрос ми е- Как може да се използва този DLL в Delphi7. Ако на някой му се занимава, съм готов и да платя за усилието. Намерих и някакави работещи компоненти за Delphi7, но не съм убеден дали ще издържат на промишлена употреба. Поздрави Светлин Маринов 0886 608575 |
![]() |
![]() ![]() ![]() |