-
C# NModbus4+ПЛК63
Здравствуйте. Мне понадобилось разработать приложение на C# для опроса ПЛК63 и сохранения данных в БД. С ПЛК я до этого не работал, да и вообще занимался только веб-разработкой до сего момента. Соответственно действовать приходиться наугад, и, по сути я вообще не понимаю, как с этим работать. Решил попробовать использовать библиотеку NModbus4.
Однако следующий код не работает:
private void button1_Click(object sender, EventArgs e)
{
var mbus = ModbusSerialMaster.CreateRtu(port);
MessageBox.Show((mbus.ReadHoldingRegisters(1, 0, 1)[0]).ToString()); - на этой строке выдает: Необработанное исключение типа "System.IO.IOException" в NModbus4.dll
Дополнительные сведения: Checksums failed to match 1, 3, 0 != 1, 3, 0, 0, 0
}
Нужна помощь либо в использовании NModbus4 либо описание и помощь по какому-нибудь альтернативному способу опроса ПЛК. Заранее спасибо.
-
Какие-то левые нули от ПЛК идут что ли... Попробуйте другими готовыми мастерами поопрашивать тот же регистр той же функцией. Будет хотя бы понятно, куда двигаться.
-
Какими например? Я не совсем понимаю, ПЛК вообще у меня принял запрос или нет.
-
Попробовал использовать функцию при выключенном ПЛК, та же самая ошибка
-
-
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Modbus.Device;
using System.Net.Sockets;
namespace DispetchTry0
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
port.Open();
if (!port.IsOpen)
MessageBox.Show("Порт не открыт");
}
private void button1_Click(object sender, EventArgs e)
{
var mbus = ModbusSerialMaster.CreateRtu(port);
MessageBox.Show((mbus.ReadHoldingRegisters(00, 3, 1)[1]).ToString());
}
}
}
-
-
private System.IO.Ports.SerialPort port; Объект стандартного класса SerialPort.
-
port настроить надо, насколько помню. В VS в справке все это есть.
-
Пхххх.... Ну проект тогда сюда целиком что ли. И настройки используемого последовательного порта ПЛК из кодесиса тоже.