Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 29

Тема: C# NModbus4+ПЛК63

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию 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 либо описание и помощь по какому-нибудь альтернативному способу опроса ПЛК. Заранее спасибо.

  2. #2
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Какие-то левые нули от ПЛК идут что ли... Попробуйте другими готовыми мастерами поопрашивать тот же регистр той же функцией. Будет хотя бы понятно, куда двигаться.

  3. #3

    По умолчанию

    Какими например? Я не совсем понимаю, ПЛК вообще у меня принял запрос или нет.

  4. #4

    По умолчанию

    Попробовал использовать функцию при выключенном ПЛК, та же самая ошибка

  5. #5
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Код — в студию. Весь.
    Последний раз редактировалось Yegor; 18.01.2016 в 13:23.

  6. #6

    По умолчанию

    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());
    }
    }
    }

  7. #7
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Откуда берётся port?

  8. #8

    По умолчанию

    private System.IO.Ports.SerialPort port; Объект стандартного класса SerialPort.

  9. #9

    По умолчанию

    port настроить надо, насколько помню. В VS в справке все это есть.

  10. #10

    По умолчанию

    порт настроен. Вот нагенеренный студией код
    namespace DispetchTry0
    {
    partial class Form1
    {
    /// <summary>
    /// Обязательная переменная конструктора.
    /// </summary>
    private System.ComponentModel.IContainer components = null;

    /// <summary>
    /// Освободить все используемые ресурсы.
    /// </summary>
    /// <param name="disposing">истинно, если управляемый ресурс должен быть удален; иначе ложно.</param>
    protected override void Dispose(bool disposing)
    {
    if (disposing && (components != null))
    {
    components.Dispose();
    }
    base.Dispose(disposing);
    }

    #region Код, автоматически созданный конструктором форм Windows

    /// <summary>
    /// Требуемый метод для поддержки конструктора — не изменяйте
    /// содержимое этого метода с помощью редактора кода.
    /// </summary>
    private void InitializeComponent()
    {
    this.components = new System.ComponentModel.Container();
    this.port = new System.IO.Ports.SerialPort(this.components);
    this.button1 = new System.Windows.Forms.Button();
    this.label1 = new System.Windows.Forms.Label();
    this.SuspendLayout();
    //
    // port
    //
    this.port.BaudRate = 19200;
    //
    // button1
    //
    this.button1.Location = new System.Drawing.Point(13, 13);
    this.button1.Name = "button1";
    this.button1.Size = new System.Drawing.Size(75, 23);
    this.button1.TabIndex = 0;
    this.button1.Text = "button1";
    this.button1.UseVisualStyleBackColor = true;
    this.button1.Click += new System.EventHandler(this.button1_Click);
    //
    // label1
    //
    this.label1.AutoSize = true;
    this.label1.Location = new System.Drawing.Point(13, 43);
    this.label1.Name = "label1";
    this.label1.Size = new System.Drawing.Size(21, 13);
    this.label1.TabIndex = 1;
    this.label1.Text = "log";
    //
    // Form1
    //
    this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    this.ClientSize = new System.Drawing.Size(406, 367);
    this.Controls.Add(this.label1);
    this.Controls.Add(this.button1);
    this.Name = "Form1";
    this.Text = "Form1";
    this.Load += new System.EventHandler(this.Form1_Load);
    this.ResumeLayout(false);
    this.PerformLayout();

    }

    #endregion

    private System.IO.Ports.SerialPort port;
    private System.Windows.Forms.Button button1;
    private System.Windows.Forms.Label label1;
    }
    }

Страница 1 из 3 123 ПоследняяПоследняя

Похожие темы

  1. ПЛК63
    от Andrew82 в разделе ПЛК63/73
    Ответов: 6
    Последнее сообщение: 19.10.2015, 14:44
  2. Help!!! ПЛК63
    от Makar в разделе ПЛК63/73
    Ответов: 23
    Последнее сообщение: 25.05.2015, 17:06
  3. ПЛК63-L
    от CheeryNick в разделе Сервисное ПО
    Ответов: 1
    Последнее сообщение: 31.01.2011, 09:57
  4. плк63
    от morcegolamer в разделе ПЛК63/73
    Ответов: 2
    Последнее сообщение: 08.05.2010, 00:53

Ваши права

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