BG Development


  Reply to this topicStart new topicStart Poll

> modbus, Работа на delphi 7 с modbus tcp/ip
svmarinov
Публикувано на: 13-02-2017, 18:44
Quote Post



Име: Светлин Маринов
Група: Потребител
Ранг: Новопостъпил

Мнения: 2
Регистриран на: 13.02.17



Привет, имам контролер Шнайдер М340 вързан по ftp. Използва modbus tcp/ip протокол. Необходимо е да използвам променливите му в делфи /както винаги се опитваме да еб.. гявола както фърчи/.
Ще съм благодарен ако някой който се е борил с тази връзка modbus tcp/ip да даде насоки накъде да тръгна/компонента, dll/.

Предварително благодаря.
инж. Светлин Маринов

PMEmail Poster
Top
reason
Публикувано на: 14-02-2017, 08:33
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 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
PMEmail Poster
Top
svmarinov
Публикувано на: 19-02-2017, 17:41
Quote Post



Име: Светлин Маринов
Група: Потребител
Ранг: Новопостъпил

Мнения: 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
PMEmail Poster
Top
0 потребители преглеждат тази тема в момента (0 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2019 | BG Development | All Rights Reserved
RSS 2.0