Просмотр полной версии : [ПЛК100] и TCP
Вот я добавил Modbus(slave)[VAR]
В нем подмодуль TCP. Адрес 10. Добавил две 2byte q и a. Закольцевал в тексте q:=a. Затем используя ПЛК-браузер задал IP 192.168.0.10. Перезагрузил.
Далее написал текст программы на ПК (используя nmodbus):
private void btnWrite_Click(object sender, EventArgs e)
{
TcpClient client = new TcpClient("192.168.0.10", 502);
ModbusIpMaster master = ModbusIpMaster.CreateIp(client);
master.WriteSingleRegister(0, 0);
}
Запускаю и программа на ПК выдает ошибку
Необработанное исключение типа "System.IO.IOException" произошло в Modbus.dll
Дополнительные сведения: Read resulted in 0 bytes returned.
>.< теряюсь в догадках
Затем используя ПЛК-браузер задал IP 192.168.0.10.
А можно всё посмотреть, Конкретно вывод команды PLCInfo, а так же какой IP-адрес у ПК и вообще соединены ли они между собой, пинг проходит?
Пинг проходит прекрасно. Более того - я прошиваю плк через Ethernet и отладку веду. У ПК адрес 192.168.0.1
PLCInfo
PLC model MODEL PLC 100
Binary VERSION 2.14.0
Need Target version 2.10
Compiled: 10:44:59 May 16 2011
MAC 6A:77:00:00:71:E9
IP 192.168.0.10
GATE 192.168.0.1
MASK 255.255.255.0
PIC upper version is 07
Licence unlimited
No DAC
PIC lower version is 0a
теперь, если можно по подробнее что делает команда WriteSingleRegister(0, 0)
первый ноль это наверное адрес регистра, а второй это какое значение присвить, так
да
Write a single holding register.
public void WriteSingleRegister(
ushort registerAddress,
ushort value
)
:) ну теперь основной вопрос, а кому он эту команду посылает?
не совсем понял последний вопрос
где Вы указали номер слейва в своей проге для ПК
а в самом начале)
Далее написал текст программы на ПК (используя nmodbus):
Код:
private void btnWrite_Click(object sender, EventArgs e)
{
TcpClient client = new TcpClient("192.168.0.10", 502);
ModbusIpMaster master = ModbusIpMaster.CreateIp(client);
master.WriteSingleRegister(0, 0);
}
вот client это как раз слейв
P.S. Надеюсь что это так
тогда еще наводящий
В нем подмодуль TCP. Адрес 10. Добавил ...а этот адрес где фигурирует у мастера, зачем слейвам адреса присваивают? Неужто считаете что это последние цифры IP-адреса
Кажется ваши наводки возымели действие. Стыд то какой. Мне естественно. А вам спасибо заранее - пойду пробовать.
Хотя уже запутался.
не факт, что проблема в этом
На какой строке исключение вылетает? Стектрейс сюда.
Попробовал со своим ПЛК160. Если ставить адрес 10, то и получается «Read resulted in 0 bytes returned». Надо ставить 0 либо пользоваться функциями с указанием адреса: WriteSingleRegister(10, 0, 42).
Кому ставить 0? Адрес плк в плк конфигурации?
АААА О ЧУДО! Боже я переполнен эмоциями! Получилось! Получилось! Спасибо вам!
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot