埃斯顿机器人modbustcp地址通过以下方法查看。
1、点击Connection-connect,选择ModbusTCP/IP,输入IP和端口号(ServerPort)。
2、Tx=0下没有红色错误提示则表示连接成功,右键数据界面选择Read/writeDefinition。
3、Address:表示开始读取的地址数。
4、Quantity:表示Address选定的起始点后显示的数据数。
5、右键页面,选择Format。
6、选择地址数据的读取方式。
7、通过转换来找到最贴合数据的格式即可。
package comzsc;
import javautilArrayList;
import javautilDate;
import javautilList;
import combatterybeanCommunityExceptionRecord;
import comserotoninmodbus4jModbusFactory;
import comserotoninmodbus4jModbusMaster;
import comserotoninmodbus4jexceptionModbusInitException;
import comserotoninmodbus4jexceptionModbusTransportException;
import comserotoninmodbus4jipIpParameters;
import comserotoninmodbus4jmsgModbusRequest;
import comserotoninmodbus4jmsgModbusResponse;
import comserotoninmodbus4jmsgReadHoldingRegistersRequest;
import comserotoninmodbus4jmsgWriteRegistersRequest;
import comserotoninmodbus4jmsgWriteRegistersResponse;
import comserotoninutilqueueByteQueue;
public class ReadAWriteUtil {
public static void modbusWTCP(String ip, int port, int slaveId, int start, short[] values) {
ModbusFactory modbusFactory = new ModbusFactory();
//
设备
ModbusTCP
的
Ip
与端口,如果不设定端口则默认为
502
IpParameters params = new IpParameters();
paramssetHost(ip);
if (502 != port) {
paramssetPort(port);
}//
设置端口,默认
502
ModbusMaster tcpMaster = null;
//
参数
1
:
IP
和端口信息参数
2
:保持连接激活
tcpMaster = modbusFactorycreateTcpMaster(params, true);
try {
tcpMasterinit();
Systemoutprintln("===============" + 1111111);
} catch (ModbusInitException e) {
// Systemoutprintln("11111111111111=="+"
此处出现问题了啊
!");
//
如果出现了通信异常信息,则保存到数据库中
CommunityExceptionRecord cer = new CommunityExceptionRecord();
cersetDate(new Date());
cersetIp(ip);
// cersetRemark(bgName+"
出现连接异常
");
// batteryGroupRecordServicesaveCommunityException(cer);
}
try {
WriteRegistersRequest
request
=
new
WriteRegistersRequest(slaveId,
start,
values);
WriteRegistersResponse
response
=
(WriteRegistersResponse)
tcpMastersend(request);
if (responseisException())
Systemoutprintln("Exception
response:
message="
+
responsegetExceptionMessage());
else
Systemoutprintln("Success");
} catch (ModbusTransportException e) {
eprintStackTrace();
}
}
public static ByteQueue modbusTCP(String ip, int port, int start,int readLenth) {
ModbusFactory modbusFactory = new ModbusFactory();
//
设备
ModbusTCP
的
Ip
与端口,如果不设定端口则默认为
502
IpParameters params = new IpParameters();
paramssetHost(ip);
if(502!=port){paramssetPort(port);}//
设置端口,默认
502
ModbusMaster tcpMaster = null;
tcpMaster = modbusFactorycreateTcpMaster(params, true);
try {
tcpMasterinit();
Systemoutprintln("==============="+1111111);
} catch (ModbusInitException e) {
return null;
}
ModbusRequest modbusRequest=null;
try {
modbusRequest
=
new
ReadHoldingRegistersRequest(1,
start,
readLenth);//
功能码
03
} catch (ModbusTransportException e) {
eprintStackTrace();
}
ModbusResponse modbusResponse=null;
try {
modbusResponse = tcpMastersend(modbusRequest);
} catch (ModbusTransportException e) {
eprintStackTrace();
ByteQueue byteQueue= new ByteQueue(12);
modbusResponsewrite(byteQueue);
Systemoutprintln("
功能码
:"+modbusRequestgetFunctionCode());
Systemoutprintln("
从站地址
:"+modbusRequestgetSlaveId());
Systemoutprintln("
收到的响应信息大小
:"+byteQueuesize());
Systemoutprintln("
收到的响应信息值
:"+byteQueue);
return byteQueue;
}
}
在Modbus协议中,如果发生中断或通信故障,通常情况下收到的数据不会是0。通常会收到错误码或异常码,用以表示通信错误的原因和类型。
比如,如果使用Modbus RTU协议进行通信,当收到异常码时,其高字节会被设置为0x80或0x90,低字节则表示具体的异常类型,例如:0x01表示功能码不支持,0x02表示数据地址或数量错误,0x03表示读写异常等等。
因此,如果收到的数据为0,那么很可能是通信发生了异常而导致的错误,需要对通信进行排查和故障排除。如果无法确定具体的错误原因,建议进行Modbus通信调试和协议分析,以确定具体的问题所在。
在数据定义界面中查看。
在数据定义界面中设置数据类型为保持寄存器,并设置MODBUS的偏移量和长度,建立与1200的通信连接,并可进行数据读写。
博图是一款可以通过无线、wifi、3G、wap阅读微博新闻的AppStore上的应用,该应用可以即时的获取微博及的最新信息。
1将通讯模块接入PLC的通讯口,扩展的网口连接modbusTCP客户端(PC或者DCS)。
2 通过IE浏览器查看BCNet模块的参数
在IE浏览器中,如果BCNet模块当前的IP地址,出厂默认IP为:1921681188;
S7200,S7300 、S7400 PLC在主站地址表里面查看PLC的站地址,作为modbusTCP的Device ID;
3设置参数modbusTCP映射DB块号,在“S7总线接口参数”里面设置“modbusTCP映射DB块号”和西门子PLC中存放数据地址的DB块号一致,比如:DB100;DB块的数据对应modbusTCP的4××××,比如:DB100DBW0对应40001;
4 设置modbusTCP客户端
[IP 地址],modbusTCP的IP地址为BCNet模块的IP地址;
[端口号],502;
[Device ID],为PLC站地址,参考说明第1条;
[地址区域],功能码3(FC3)对应4××××地址;
[起始地址],数据的起始地址,最新为0001;
[数据长度],数据长度不要超出DB块里面数据的总长度;
其实没有必要这么繁琐的,C#添加Modbus引用之后,可以使用ModbusUtility命名空间里面有一个ReadHoldingRegister的方法,使用这个方法可以直接读取设备寄存器地址里面的数据,再把数据对应的高低位、百位组合一下就可以显示出下位机屏幕上的数据,但前提是你要有你的设备的寄存器地址详细说明,至于Modbus引用之类的,去网上搜一下NModbus Sample可以下载到Modbus协议在编程里面的详细使用方法,祝你好运!
以上就是关于埃斯顿机器人modbustcp地址怎么看全部的内容,包括:埃斯顿机器人modbustcp地址怎么看、java jamod实现modbus 如何读取浮点数据、modbus中断时,收到的数据是0吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)