Member 13937256 Ответов: 1

Присвоить переменной int [] значения


Я использую этот метод, у меня возникают трудности.

тип int [] ReadWriteMultipleRegisters (инт startingAddressRead, инт quantityRead, startingAddressWrite инт, инт [] значения)

Чтение / запись нескольких регистров (функциональный код 23).

startingAddressRead: первый входной регистр для чтения.

quantityRead: количество входных регистров для чтения.

startingAddressWrite: первый входной регистр для записи.

значения: значения для записи.

возвращается: Массив Int, содержащий регистры хранения [0..quantityRead-1].


У меня возникла ошибка при назначении переменной writeData, они могли бы мне помочь.

Спасибо.

Что я уже пробовал:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using EasyModbus;





namespace comunicacion_tcp
{
    class Program
    {
        private string IpAddress = "192.168.178.111";
        private int port = 502;
        private ushort startAddres = 4352;
        private ushort quantity = 1;
        private ushort startAddres1 = 4353;
        private int writeData;
        private ModbusClient modbustcp;
        public Program()
        {
            modbustcp = new ModbusClient(IpAddress, port);
            modbustcp.Connect();
            int[] response = modbustcp.ReadWriteMultipleRegisters( startAddres,quantity, startAddres1 , writeData);
            modbustcp.Disconnect();
            Console.WriteLine("value of input register 1" + response[0].ToString());


        }

        static void Main(string[] args)
        {
            Program _program = new Program();
            Console.ReadKey();
        }
    }
}

1 Ответов

Рейтинг:
0

OriginalGriff

Попробуй:

int[] writeData = new int[quantity];

Это будет работать, если Вы читаете значения, но для записи вам нужно будет определить размер по крайней мере тех данных, которые вы хотите записать, и установить там значения.


Member 13937256

Ошибка присваивания переменной writeData удаляется (ошибка: не удается преобразовать из int в int [])
Я получаю ошибку "недопустимый начальный адрес или недопустимый начальный адрес + количество"

Когда я запускаю программу, я немного сыроват в этом, извините.

OriginalGriff

Это происходит из метода "ReadWriteMultipleRegisters", и он говорит, что числовые параметры, которые вы передали, находятся вне диапазона. Это будет зависеть от регистров, которые Вы читаете и от чего - поэтому вам придется начать читать руководства, где вы получили эти "магические числа": 4352, 1, 4353 и так далее.
Мы не можем вам в этом помочь!