MelsecMcNet 类 |
命名空间: HslCommunication.Profinet.Melsec
MelsecMcNet 类型公开以下成员。
名称 | 说明 | |
---|---|---|
MelsecMcNet |
实例化三菱的Qna兼容3E帧协议的通讯对象 Instantiate the communication object of Mitsubishi's Qna compatible 3E frame protocol | |
MelsecMcNet(String, Int32) |
指定ip地址和端口号来实例化一个默认的对象 Specify the IP address and port number to instantiate a default object |
名称 | 说明 | |
---|---|---|
ByteTransform |
当前的数据变换机制,当你需要从字节数据转换类型数据的时候需要。 (继承自 DeviceCommunication。)The current data transformation mechanism is required when you need to convert type data from byte data. | |
CommunicationPipe | (继承自 BinaryCommunication。) | |
ConnectionId |
当前连接的唯一ID号,默认为长度20的guid码加随机数组成,方便列表管理,也可以自己指定 (继承自 BinaryCommunication。)The unique ID number of the current connection. The default is a 20-digit guid code plus a random number. | |
ConnectTimeOut |
获取或设置接收服务器反馈的时间,如果为负数,则不接收反馈 (继承自 DeviceTcpNet。)Gets or sets the time to receive server feedback, and if it is a negative number, does not receive feedback | |
EnableWriteBitToWordRegister |
是否开启支持写入位到字寄存器的功能,该功能先读取字寄存器的字数据,然后修改其中的位,再写入回去,可能存在脏数据的风险 Whether to enable supporting the function of writing bit-to-word registers, which first reads the word data of the word register, then modifies the bits in it, and then writes back, there may be a risk of dirty data | |
IpAddress |
获取或是设置远程服务器的IP地址,如果是本机测试,那么需要设置为127.0.0.1 (继承自 DeviceTcpNet。)Get or set the IP address of the remote server. If it is a local test, then it needs to be set to 127.0.0.1 | |
LocalBinding |
获取或设置绑定的本地的IP地址和端口号信息,如果端口设置为0,代表任何可用的端口 (继承自 DeviceTcpNet。)Get or set the bound local IP address and port number information, if the port is set to 0, it means any available port | |
LogNet |
组件的日志工具,支持日志记录,只要实例化后,当前网络的基本信息,就以DEBUG等级进行输出 (继承自 BinaryCommunication。)The component's logging tool supports logging. As long as the instantiation of the basic network information, the output will be output at DEBUG | |
McType |
当前的MC协议的格式类型 The format type of the current MC protocol | |
NetworkNumber |
网络号,通常为0 Network number, usually 0 | |
NetworkStationNumber |
网络站号,通常为0 Network station number, usually 0 | |
PLCNumber |
PLC编号,如果是本站信息,则是 0xFF 值,其他站则根据实际的情况指定。 The PLC number, if it is the information of this station, is the 0xFF value, and other stations are specified according to the actual situation. | |
Port |
获取或设置服务器的端口号,具体的值需要取决于对方的配置 (继承自 DeviceTcpNet。)Gets or sets the port number of the server. The specific value depends on the configuration of the other party. | |
ReceiveTimeOut |
获取或设置接收服务器反馈的时间,如果为负数,则不接收反馈 (继承自 BinaryCommunication。)Gets or sets the time to receive server feedback, and if it is a negative number, does not receive feedback | |
SendBeforeHex |
获取或设置在发送通信报文前追加发送的字节信息,HEX格式,通常用于lora组网时,需要携带 00 00 00 02 四个字节的站地址功能。 (继承自 BinaryCommunication。)Obtain or set the byte information sent before sending communication packets, HEX format, usually used for LORA networking, you need to carry 00 00 00 02 four-byte station address function. | |
SleepTime |
获取或设置在正式接收对方返回数据前的时候,需要休息的时间,当设置为0的时候,不需要休息。 (继承自 BinaryCommunication。)Get or set the time required to rest before officially receiving the data from the other party. When it is set to 0, no rest is required. | |
SocketKeepAliveTime |
获取或设置客户端的Socket的心跳时间信息,这个是Socket底层自动实现的心跳包,不基于协议层实现。默认小于0,不开启心跳检测,如果需要开启,设置 60_000 比较合适,单位毫秒 (继承自 DeviceTcpNet。)Get or set the heartbeat time information of the Socket of the client. This is the heartbeat packet automatically implemented by the bottom layer of the Socket, not based on the protocol layer. The default value is less than 0, and heartbeat detection is not enabled. If you need to enable it, it is more appropriate to set 60_000, in milliseconds. | |
TargetIOStation |
请求目标模块的IO编号,默认是管理CPU,也就是 0x03FF 的值,如果需要访问其他的非管理CPU的时候,请参考手册进行配置相关的值 The IO number of the target module is the default management CPU, that is, the value of 0x03FF, if you need to access other non-management CPUs, please refer to the manual to configure the relevant values | |
WordLength |
一个字单位的数据表示的地址长度,西门子为2,三菱,欧姆龙,modbusTcp就为1,AB PLC无效 (继承自 DeviceCommunication。)The address length represented by one word of data, Siemens is 2, Mitsubishi, Omron, modbusTcp is 1, AB PLC is invalid |
名称 | 说明 | |
---|---|---|
ConnectClose |
手动断开与远程服务器的连接,如果当前是长连接模式,那么就会切换到短连接模式 (继承自 DeviceTcpNet。)Manually disconnect from the remote server, if it is currently in long connection mode, it will switch to short connection mode | |
ConnectCloseAsync |
手动断开与远程服务器的连接,如果当前是长连接模式,那么就会切换到短连接模式 (继承自 DeviceTcpNet。)Manually disconnect from the remote server, if it is currently in long connection mode, it will switch to short connection mode | |
ConnectServer |
尝试连接远程的服务器,如果连接成功,就切换短连接模式到长连接模式,后面的每次请求都共享一个通道,使得通讯速度更快速 (继承自 DeviceTcpNet。)Try to connect to a remote server. If the connection is successful, switch the short connection mode to the long connection mode. Each subsequent request will share a channel, making the communication speed faster. | |
ConnectServerAsync |
尝试连接远程的服务器,如果连接成功,就切换短连接模式到长连接模式,后面的每次请求都共享一个通道,使得通讯速度更快速 (继承自 DeviceTcpNet。)Try to connect to a remote server. If the connection is successful, switch the short connection mode to the long connection mode. Each subsequent request will share a channel, making the communication speed faster. | |
DecideWhetherQAMessage |
决定当前的消息是否是用于问答机制返回的消息,默认直接返回 true, 实际的情况需要根据协议进行重写方法 (继承自 BinaryCommunication。)To determine whether the current message is the message returned by the question answering mechanism, the default is true. In actual cases, the rewriting method needs to be performed according to the protocol | |
Dispose | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. (继承自 DeviceCommunication。) | |
Dispose(Boolean) | Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. (继承自 DeviceCommunication。) | |
Equals | Determines whether the specified object is equal to the current object. (继承自 Object。) | |
ErrorStateReset |
LED 熄灭 出错代码初始化 LED off Error code initialization | |
ErrorStateResetAsync |
LED 熄灭 出错代码初始化 LED off Error code initialization | |
ExtraAfterReadFromCoreServer |
和服务器交互完成的时候调用的方法,可以根据读写结果进行一些额外的操作,具体的操作需要根据实际的需求来重写实现 (继承自 BinaryCommunication。)The method called when the interaction with the server is completed can perform some additional operations based on the read and write results. The specific operations need to be rewritten according to actual needs. | |
ExtractActualData |
从PLC反馈的数据中提取出实际的数据内容,需要传入反馈数据,是否位读取
| |
ExtraOnDisconnect |
根据实际的协议选择是否重写本方法,有些协议在断开连接之前,需要发送一些报文来关闭当前的网络通道 (继承自 BinaryCommunication。)Select whether to rewrite this method according to the actual protocol. Some protocols need to send some packets to close the current network channel before disconnecting. | |
ExtraOnDisconnectAsync |
根据实际的协议选择是否重写本方法,有些协议在断开连接之前,需要发送一些报文来关闭当前的网络通道 (继承自 BinaryCommunication。)Select whether to rewrite this method according to the actual protocol. Some protocols need to send some packets to close the current network channel before disconnecting. | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (继承自 Object。) | |
GetHashCode | Serves as the default hash function. (继承自 Object。) | |
GetLogTextFromBinary |
获取当前的报文进行日志记录的时候,是否使用二进制的格式记录,默认返回 LogMsgFormatBinary,重写可以根据session对象分别返回不同记录模式 (继承自 BinaryCommunication。)Whether to log the current packet in binary format, the default return is LogMsgFormatBinary. If you want to override it, different recording modes can be returned according to session | |
GetNewNetMessage |
获取一个新的消息对象的方法,需要在继承类里面进行重写 (重写 BinaryCommunicationGetNewNetMessage.)The method to get a new message object needs to be overridden in the inheritance class | |
GetType | Gets the Type of the current instance. (继承自 Object。) | |
GetWordLength |
一个字单位的数据表示的地址长度,西门子为2,三菱,欧姆龙,modbusTcp就为1,AB PLC无效 (继承自 DeviceCommunication。)The address length represented by one word of data, Siemens is 2, Mitsubishi, Omron, modbusTcp is 1, AB PLC is invalid | |
InitializationOnConnect |
根据实际的协议选择是否重写本方法,有些协议在创建连接之后,需要进行一些初始化的信号握手,才能最终建立网络通道。 (继承自 BinaryCommunication。)Whether to rewrite this method is based on the actual protocol. Some protocols require some initial signal handshake to establish a network channel after the connection is created. | |
InitializationOnConnectAsync |
根据实际的协议选择是否重写本方法,有些协议在创建连接之后,需要进行一些初始化的信号握手,才能最终建立网络通道。 (继承自 BinaryCommunication。)Whether to rewrite this method is based on the actual protocol. Some protocols require some initial signal handshake to establish a network channel after the connection is created. | |
IpAddressPing |
对当前设备的IP地址进行PING的操作,返回PING的结果,正常来说,返回Success (继承自 DeviceTcpNet。)PING the IP address of the current device and return the PING result. Normally, it returns Success | |
LogRevcMessage(Byte) |
使用日志记录一个接收的报文信息 (继承自 BinaryCommunication。)` Logs are used to record information about a received packet | |
LogRevcMessage(Byte, PipeSession) |
使用日志记录一个接收的报文信息 (继承自 BinaryCommunication。)` Logs are used to record information about a received packet | |
LogSendMessage(Byte) |
使用日志记录一个发送的报文信息 (继承自 BinaryCommunication。)Logs are used to record information about a send packet | |
LogSendMessage(Byte, PipeSession) |
使用日志记录一个发送的报文信息 (继承自 BinaryCommunication。)Logs are used to record information about a send packet | |
McAnalysisAddress |
当前MC协议的分析地址的方法,对传入的字符串格式的地址进行数据解析。 The current MC protocol's address analysis method performs data parsing on the address of the incoming string format. | |
MemberwiseClone | Creates a shallow copy of the current Object. (继承自 Object。) | |
PackCommandWithHeader |
对当前的命令进行打包处理,通常是携带命令头内容,标记当前的命令的长度信息,需要进行重写,否则默认不打包 (重写 BinaryCommunicationPackCommandWithHeader(Byte).)The current command is packaged, usually carrying the content of the command header, marking the length of the current command, and it needs to be rewritten, otherwise it is not packaged by default | |
Read(String, UInt16) |
批量读取字节数组信息,需要指定地址和长度,返回原始的字节数组 (重写 DeviceCommunicationRead(String, UInt16).)Batch read byte array information, need to specify the address and length, return the original byte array | |
ReadT |
读取支持Hsl特性的数据内容,该特性为HslDeviceAddressAttribute,详细参考api文档说明,或是官网的详细文档 (继承自 DeviceCommunication。)Read the data content of the Hsl attribute. The attribute is HslDeviceAddressAttribute, please refer to the api documentation for details. | |
ReadAsync(String, UInt16) |
批量读取字节数组信息,需要指定地址和长度,返回原始的字节数组 (重写 DeviceCommunicationReadAsync(String, UInt16).)Batch read byte array information, need to specify the address and length, return the original byte array | |
ReadAsyncT |
异步读取支持Hsl特性的数据内容,该特性为HslDeviceAddressAttribute,详细参考api文档说明 (继承自 DeviceCommunication。)Asynchronously read the data content of the Hsl attribute. The attribute is HslDeviceAddressAttribute, please refer to the api documentation for details. | |
ReadBool(String) |
读取单个的Boolean数据信息 (重写 DeviceCommunicationReadBool(String).)Read a single Boolean data message | |
ReadBool(String, UInt16) |
批量读取Boolean数组信息,需要指定地址和长度,返回Boolean 数组 (重写 DeviceCommunicationReadBool(String, UInt16).)Batch read Boolean array information, need to specify the address and length, return Boolean array | |
ReadBoolAsync(String) |
读取单个的Boolean数据信息 (重写 DeviceCommunicationReadBoolAsync(String).)Read a single Boolean data message | |
ReadBoolAsync(String, UInt16) |
批量读取Boolean数组信息,需要指定地址和长度,返回Boolean 数组 (重写 DeviceCommunicationReadBoolAsync(String, UInt16).)Batch read Boolean array information, need to specify the address and length, return Boolean array | |
ReadCustomerT(String) |
读取自定义的数据类型,需要继承自IDataTransfer接口,返回一个新的类型的实例对象。 (继承自 DeviceCommunication。)To read a custom data type, you need to inherit from the IDataTransfer interface and return an instance object of a new type. | |
ReadCustomerT(String, T) |
读取自定义的数据类型,需要继承自IDataTransfer接口,传入一个实例,对这个实例进行赋值,并返回该实例的对象。 (继承自 DeviceCommunication。)To read a custom data type, you need to inherit from the IDataTransfer interface, pass in an instance, assign a value to this instance, and return the object of the instance. | |
ReadCustomerAsyncT(String) |
读取自定义的数据类型,需要继承自IDataTransfer接口,返回一个新的类型的实例对象。 (继承自 DeviceCommunication。)To read a custom data type, you need to inherit from the IDataTransfer interface and return an instance object of a new type. | |
ReadCustomerAsyncT(String, T) |
读取自定义的数据类型,需要继承自IDataTransfer接口,传入一个实例,对这个实例进行赋值,并返回该实例的对象。 (继承自 DeviceCommunication。)To read a custom data type, you need to inherit from the IDataTransfer interface, pass in an instance, assign a value to this instance, and return the object of the instance. | |
ReadDouble(String) |
读取双浮点的数据 (继承自 DeviceCommunication。)Read double floating point data | |
ReadDouble(String, UInt16) |
读取双浮点数据的数组 (继承自 DeviceCommunication。)Read double floating point data array | |
ReadDoubleAsync(String) |
异步读取双浮点的数据 (继承自 DeviceCommunication。)Asynchronously read double floating point data | |
ReadDoubleAsync(String, UInt16) |
异步读取双浮点数据的数组 (继承自 DeviceCommunication。)Asynchronously read double floating point data array | |
ReadExtend | [商业授权] 读取扩展的数据信息,需要在原有的地址,长度信息之外,输入扩展值信息 [Authorization] To read the extended data information, you need to enter the extended value information in addition to the original address and length information | |
ReadExtendAsync | [商业授权] 读取扩展的数据信息,需要在原有的地址,长度信息之外,输入扩展值信息 [Authorization] To read the extended data information, you need to enter the extended value information in addition to the original address and length information | |
ReadFloat(String) |
读取单浮点数据 (继承自 DeviceCommunication。)Read single floating point data | |
ReadFloat(String, UInt16) |
读取单浮点精度的数组 (继承自 DeviceCommunication。)Read single floating point array | |
ReadFloatAsync(String) |
异步读取单浮点数据 (继承自 DeviceCommunication。)Asynchronously read single floating point data | |
ReadFloatAsync(String, UInt16) |
异步读取单浮点精度的数组 (继承自 DeviceCommunication。)Asynchronously read single floating point array | |
ReadFromCoreServer(Byte) |
将二进制的数据发送到管道中去,然后从管道里接收二进制的数据回来,并返回是否成功的结果对象。 (继承自 BinaryCommunication。)Send binary data to the pipeline, and then receive binary data back from the pipeline, and return whether the success of the result object | |
ReadFromCoreServer(IEnumerableByte) |
将多个数据报文按顺序发到设备,并从设备接收返回的数据内容,然后拼接成一个Byte[]信息,需要重写UnpackResponseContent(Byte, Byte)方法才能返回正确的结果。 (继承自 BinaryCommunication。)Send multiple data packets to the device in sequence, and receive the returned data content from the device, and then splicing them into a Byte[] message, you need to rewrite UnpackResponseContent(Byte, Byte) method to return the correct result. | |
ReadFromCoreServer(Byte, Boolean, Boolean) |
将二进制的数据发送到管道中去,然后从管道里接收二进制的数据回来,并返回是否成功的结果对象。 (继承自 BinaryCommunication。)Send binary data to the pipeline, and then receive binary data back from the pipeline, and return whether the success of the result object | |
ReadFromCoreServer(CommunicationPipe, Byte, Boolean, Boolean) |
使用指定的管道来进行数据通信,发送原始数据到管道,然后从管道接收相关的数据返回,本方法无锁
(继承自 BinaryCommunication。) | |
ReadFromCoreServerAsync(Byte) |
将二进制的数据发送到管道中去,然后从管道里接收二进制的数据回来,并返回是否成功的结果对象。 (继承自 BinaryCommunication。)Send binary data to the pipeline, and then receive binary data back from the pipeline, and return whether the success of the result object | |
ReadFromCoreServerAsync(IEnumerableByte) |
将多个数据报文按顺序发到设备,并从设备接收返回的数据内容,然后拼接成一个Byte[]信息,需要重写UnpackResponseContent(Byte, Byte)方法才能返回正确的结果。 (继承自 BinaryCommunication。)Send multiple data packets to the device in sequence, and receive the returned data content from the device, and then splicing them into a Byte[] message, you need to rewrite UnpackResponseContent(Byte, Byte) method to return the correct result. | |
ReadFromCoreServerAsync(Byte, Boolean, Boolean) |
将二进制的数据发送到管道中去,然后从管道里接收二进制的数据回来,并返回是否成功的结果对象。 (继承自 BinaryCommunication。)Send binary data to the pipeline, and then receive binary data back from the pipeline, and return whether the success of the result object | |
ReadFromCoreServerAsync(CommunicationPipe, Byte, Boolean, Boolean) |
使用指定的管道来进行数据通信,发送原始数据到管道,然后从管道接收相关的数据返回,本方法无锁
(继承自 BinaryCommunication。) | |
ReadInt16(String) |
读取16位的有符号的整型数据 (继承自 DeviceCommunication。)Read 16-bit signed integer data | |
ReadInt16(String, UInt16) |
读取16位的有符号整型数组 (继承自 DeviceCommunication。)Read 16-bit signed integer array | |
ReadInt16Async(String) |
异步读取16位的有符号的整型数据 (继承自 DeviceCommunication。)Asynchronously read 16-bit signed integer data | |
ReadInt16Async(String, UInt16) |
异步读取16位的有符号整型数组 (继承自 DeviceCommunication。)Asynchronously read 16-bit signed integer array | |
ReadInt32(String) |
读取32位的有符号整型 (继承自 DeviceCommunication。)Read 32-bit signed integer | |
ReadInt32(String, UInt16) |
读取32位有符号整型数组 (继承自 DeviceCommunication。)Read 32-bit signed integer array | |
ReadInt32Async(String) |
异步读取32位的有符号整型 (继承自 DeviceCommunication。)Asynchronously read 32-bit signed integer | |
ReadInt32Async(String, UInt16) |
异步读取32位有符号整型数组 (继承自 DeviceCommunication。)Asynchronously read 32-bit signed integer array | |
ReadInt64(String) |
读取64位的有符号整型 (继承自 DeviceCommunication。)Read 64-bit signed integer | |
ReadInt64(String, UInt16) |
读取64位的有符号整型数组 (继承自 DeviceCommunication。)Read 64-bit signed integer array | |
ReadInt64Async(String) |
异步读取64位的有符号整型 (继承自 DeviceCommunication。)Asynchronously read 64-bit signed integer | |
ReadInt64Async(String, UInt16) |
异步读取64位的有符号整型数组 (继承自 DeviceCommunication。)Asynchronously read 64-bit signed integer array | |
ReadMemory | [商业授权] 读取缓冲寄存器的数据信息,地址直接为偏移地址 [Authorization] Read the data information of the buffer register, the address is directly the offset address | |
ReadMemoryAsync | [商业授权] 读取缓冲寄存器的数据信息,地址直接为偏移地址 [Authorization] Read the data information of the buffer register, the address is directly the offset address | |
ReadPlcType |
读取PLC的型号信息,例如 Q02HCPU Read PLC model information, such as Q02HCPU | |
ReadPlcTypeAsync |
读取PLC的型号信息,例如 Q02HCPU Read PLC model information, such as Q02HCPU | |
ReadRandom(String) |
随机读取PLC的数据信息,可以跨地址,跨类型组合,但是每个地址只能读取一个word,也就是2个字节的内容。收到结果后,需要自行解析数据 Randomly read PLC data information, which can be combined across addresses and types, but each address can only read one word, which is the content of 2 bytes. After receiving the results, you need to parse the data yourself | |
ReadRandom(String, UInt16) |
使用块读取PLC的数据信息,可以跨地址,跨类型组合,每个地址是任意的长度。收到结果后,需要自行解析数据,目前只支持字地址,比如D区,W区,R区,不支持X,Y,M,B,L等等 Read the data information of the PLC randomly. It can be combined across addresses and types. Each address is of any length. After receiving the results, you need to parse the data yourself. Currently, only word addresses are supported, such as D area, W area, R area. X, Y, M, B, L, etc | |
ReadRandomAsync(String) |
随机读取PLC的数据信息,可以跨地址,跨类型组合,但是每个地址只能读取一个word,也就是2个字节的内容。收到结果后,需要自行解析数据 Randomly read PLC data information, which can be combined across addresses and types, but each address can only read one word, which is the content of 2 bytes. After receiving the results, you need to parse the data yourself | |
ReadRandomAsync(String, UInt16) |
使用块读取PLC的数据信息,可以跨地址,跨类型组合,每个地址是任意的长度。收到结果后,需要自行解析数据,目前只支持字地址,比如D区,W区,R区,不支持X,Y,M,B,L等等 Read the data information of the PLC randomly. It can be combined across addresses and types. Each address is of any length. After receiving the results, you need to parse the data yourself. Currently, only word addresses are supported, such as D area, W area, R area. X, Y, M, B, L, etc | |
ReadRandomInt16 |
随机读取PLC的数据信息,可以跨地址,跨类型组合,但是每个地址只能读取一个word,也就是2个字节的内容。收到结果后,自动转换为了short类型的数组 Randomly read PLC data information, which can be combined across addresses and types, but each address can only read one word, which is the content of 2 bytes. After receiving the result, it is automatically converted to an array of type short. | |
ReadRandomInt16Async |
随机读取PLC的数据信息,可以跨地址,跨类型组合,但是每个地址只能读取一个word,也就是2个字节的内容。收到结果后,自动转换为了short类型的数组 Randomly read PLC data information, which can be combined across addresses and types, but each address can only read one word, which is the content of 2 bytes. After receiving the result, it is automatically converted to an array of type short. | |
ReadRandomUInt16 |
随机读取PLC的数据信息,可以跨地址,跨类型组合,但是每个地址只能读取一个word,也就是2个字节的内容。收到结果后,自动转换为了ushort类型的数组 Randomly read PLC data information, which can be combined across addresses and types, but each address can only read one word, which is the content of 2 bytes. After receiving the result, it is automatically converted to an array of type ushort. | |
ReadRandomUInt16Async |
随机读取PLC的数据信息,可以跨地址,跨类型组合,但是每个地址只能读取一个word,也就是2个字节的内容。收到结果后,自动转换为了ushort类型的数组 Randomly read PLC data information, which can be combined across addresses and types, but each address can only read one word, which is the content of 2 bytes. After receiving the result, it is automatically converted to an array of type ushort. | |
ReadSmartModule | [商业授权] 读取智能模块的数据信息,需要指定模块地址,偏移地址,读取的字节长度 [Authorization] To read the extended data information, you need to enter the extended value information in addition to the original address and length information | |
ReadSmartModuleAsync | [商业授权] 读取智能模块的数据信息,需要指定模块地址,偏移地址,读取的字节长度 [Authorization] To read the extended data information, you need to enter the extended value information in addition to the original address and length information | |
ReadString(String, UInt16) |
读取字符串数据,默认为最常见的ASCII编码 (继承自 DeviceCommunication。)Read string data, default is the most common ASCII encoding | |
ReadString(String, UInt16, Encoding) |
使用指定的编码,读取字符串数据 (继承自 DeviceCommunication。)Reads string data using the specified encoding | |
ReadStringAsync(String, UInt16) |
异步读取字符串数据,默认为最常见的ASCII编码 (继承自 DeviceCommunication。)Asynchronously read string data, default is the most common ASCII encoding | |
ReadStringAsync(String, UInt16, Encoding) |
异步使用指定的编码,读取字符串数据 (继承自 DeviceCommunication。)Asynchronously reads string data using the specified encoding | |
ReadStructT |
读取结构体类型的数据,根据结构体自身的定义,读取原始字节数组,然后解析出实际的结构体数据,结构体需要实现HslStructAttribute特性
(继承自 DeviceCommunication。) | |
ReadStructAsyncT |
读取结构体类型的数据,根据结构体自身的定义,读取原始字节数组,然后解析出实际的结构体数据,结构体需要实现HslStructAttribute特性
(继承自 DeviceCommunication。) | |
ReadTags(String, UInt16) | [商业授权] 读取PLC的标签信息,需要传入标签的名称,读取的字长度,标签举例:A; label[1]; bbb[10,10,10] [Authorization] To read the label information of the PLC, you need to pass in the name of the label, the length of the word read, and an example of the label: A; label [1]; bbb [10,10,10] | |
ReadTags(String, UInt16) | [商业授权] 读取PLC的标签信息,需要传入标签的名称,读取的字长度,标签举例:A; label[1]; bbb[10,10,10] [Authorization] To read the label information of the PLC, you need to pass in the name of the label, the length of the word read, and an example of the label: A; label [1]; bbb [10,10,10] | |
ReadTagsAsync(String, UInt16) | [商业授权] 读取PLC的标签信息,需要传入标签的名称,读取的字长度,标签举例:A; label[1]; bbb[10,10,10] [Authorization] To read the label information of the PLC, you need to pass in the name of the label, the length of the word read, and an example of the label: A; label [1]; bbb [10,10,10] | |
ReadTagsAsync(String, UInt16) | [商业授权] 读取PLC的标签信息,需要传入标签的名称,读取的字长度,标签举例:A; label[1]; bbb[10,10,10] [Authorization] To read the label information of the PLC, you need to pass in the name of the label, the length of the word read, and an example of the label: A; label [1]; bbb [10,10,10] | |
ReadUInt16(String) |
读取16位的无符号整型 (继承自 DeviceCommunication。)Read 16-bit unsigned integer | |
ReadUInt16(String, UInt16) |
读取16位的无符号整型数组 (继承自 DeviceCommunication。)Read 16-bit unsigned integer array | |
ReadUInt16Async(String) |
异步读取16位的无符号整型 (继承自 DeviceCommunication。)Asynchronously read 16-bit unsigned integer | |
ReadUInt16Async(String, UInt16) |
异步读取16位的无符号整型数组 (继承自 DeviceCommunication。)Asynchronously read 16-bit unsigned integer array | |
ReadUInt32(String) |
读取32位的无符号整型 (继承自 DeviceCommunication。)Read 32-bit unsigned integer | |
ReadUInt32(String, UInt16) |
读取32位的无符号整型数组 (继承自 DeviceCommunication。)Read 32-bit unsigned integer array | |
ReadUInt32Async(String) |
异步读取32位的无符号整型 (继承自 DeviceCommunication。)Asynchronously read 32-bit unsigned integer | |
ReadUInt32Async(String, UInt16) |
异步读取32位的无符号整型数组 (继承自 DeviceCommunication。)Asynchronously read 32-bit unsigned integer array | |
ReadUInt64(String) |
读取64位的无符号整型 (继承自 DeviceCommunication。)Read 64-bit unsigned integer | |
ReadUInt64(String, UInt16) |
读取64位的无符号整型的数组 (继承自 DeviceCommunication。)Read 64-bit unsigned integer array | |
ReadUInt64Async(String) |
异步读取64位的无符号整型 (继承自 DeviceCommunication。)Asynchronously read 64-bit unsigned integer | |
ReadUInt64Async(String, UInt16) |
异步读取64位的无符号整型的数组 (继承自 DeviceCommunication。)Asynchronously read 64-bit unsigned integer array | |
RemoteReset |
远程Reset操作 Remote Reset Operation | |
RemoteResetAsync |
远程Reset操作 Remote Reset Operation | |
RemoteRun |
远程Run操作 Remote Run Operation | |
RemoteRunAsync |
远程Run操作 Remote Run Operation | |
RemoteStop |
远程Stop操作 Remote Stop operation | |
RemoteStopAsync |
远程Stop操作 Remote Stop operation | |
SetDtuPipe |
将当前的通信对象设置DTU模式,允许传入现成的管道,并返回初始化结果,如果该设备重写了握手报文,就是返回握手结果 (继承自 BinaryCommunication。)Set the current communication object to DTU mode, allow the existing pipe to be passed in, and return the initialization result, if the device rewrites the handshake packet, the handshake result is returned | |
SetDtuPipeAsync |
将当前的通信对象设置DTU模式,允许传入现成的管道,并返回初始化结果,如果该设备重写了握手报文,就是返回握手结果 (继承自 BinaryCommunication。)Set the current communication object to DTU mode, allow the existing pipe to be passed in, and return the initialization result, if the device rewrites the handshake packet, the handshake result is returned | |
SetPersistentConnection |
已过时。
V11版本及之前设置长连接的方法,在V12版本以上中没有任何效果,默认长连接,删除调用即可,此处保留方法是为了部分用户保持兼容性升级。 (继承自 DeviceTcpNet。)The method of setting the long connection in V11 and before, has no effect in V12 and above. this method can be deleted. The method is retained here to maintain compatibility upgrades for some users. | |
ToString | Returns a string that represents the current object. (重写 DeviceTcpNetToString.) | |
UnpackResponseContent |
根据对方返回的报文命令,对命令进行基本的拆包,例如各种Modbus协议拆包为统一的核心报文,还支持对报文的验证 (重写 BinaryCommunicationUnpackResponseContent(Byte, Byte).)According to the message command returned by the other party, the command is basically unpacked, for example, various Modbus protocols are unpacked into a unified core message, and the verification of the message is also supported | |
Wait(String, Boolean, Int32, Int32) |
等待指定地址的Boolean值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。 (继承自 DeviceCommunication。)Waiting for the Boolean value of the specified address to be the specified value, you can specify the frequency of refreshing the data, and the timeout time to wait. If the timeout time is -1, it is an indefinite wait. | |
Wait(String, Int16, Int32, Int32) |
等待指定地址的Int16值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。 (继承自 DeviceCommunication。)Waiting for the Int16 value of the specified address to be the specified value, you can specify the frequency of refreshing the data, and the timeout time to wait. If the timeout time is -1, it is an indefinite wait. | |
Wait(String, Int32, Int32, Int32) |
等待指定地址的Int32值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。 (继承自 DeviceCommunication。)Waiting for the Int32 value of the specified address to be the specified value, you can specify the frequency of refreshing the data, and the timeout time to wait. If the timeout time is -1, it is an indefinite wait. | |
Wait(String, Int64, Int32, Int32) |
等待指定地址的Int64值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。 (继承自 DeviceCommunication。)Waiting for the Int64 value of the specified address to be the specified value, you can specify the frequency of refreshing the data, and the timeout time to wait. If the timeout time is -1, it is an indefinite wait. | |
Wait(String, UInt16, Int32, Int32) |
等待指定地址的UInt16值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。 (继承自 DeviceCommunication。)Waiting for the UInt16 value of the specified address to be the specified value, you can specify the frequency of refreshing the data, and the timeout time to wait. If the timeout time is -1, it is an indefinite wait. | |
Wait(String, UInt32, Int32, Int32) |
等待指定地址的UInt32值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。 (继承自 DeviceCommunication。)Waiting for the UInt32 value of the specified address to be the specified value, you can specify the frequency of refreshing the data, and the timeout time to wait. If the timeout time is -1, it is an indefinite wait. | |
Wait(String, UInt64, Int32, Int32) |
等待指定地址的UInt64值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。 (继承自 DeviceCommunication。)Waiting for the UInt64 value of the specified address to be the specified value, you can specify the frequency of refreshing the data, and the timeout time to wait. If the timeout time is -1, it is an indefinite wait. | |
WaitAsync(String, Boolean, Int32, Int32) |
等待指定地址的Boolean值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。 (继承自 DeviceCommunication。)Waiting for the Boolean value of the specified address to be the specified value, you can specify the frequency of refreshing the data, and the timeout time to wait. If the timeout time is -1, it is an indefinite wait. | |
WaitAsync(String, Int16, Int32, Int32) |
等待指定地址的Int16值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。 (继承自 DeviceCommunication。)Waiting for the Int16 value of the specified address to be the specified value, you can specify the frequency of refreshing the data, and the timeout time to wait. If the timeout time is -1, it is an indefinite wait. | |
WaitAsync(String, Int32, Int32, Int32) |
等待指定地址的Int32值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。 (继承自 DeviceCommunication。)Waiting for the Int32 value of the specified address to be the specified value, you can specify the frequency of refreshing the data, and the timeout time to wait. If the timeout time is -1, it is an indefinite wait. | |
WaitAsync(String, Int64, Int32, Int32) |
等待指定地址的Int64值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。 (继承自 DeviceCommunication。)Waiting for the Int64 value of the specified address to be the specified value, you can specify the frequency of refreshing the data, and the timeout time to wait. If the timeout time is -1, it is an indefinite wait. | |
WaitAsync(String, UInt16, Int32, Int32) |
等待指定地址的UInt16值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。 (继承自 DeviceCommunication。)Waiting for the UInt16 value of the specified address to be the specified value, you can specify the frequency of refreshing the data, and the timeout time to wait. If the timeout time is -1, it is an indefinite wait. | |
WaitAsync(String, UInt32, Int32, Int32) |
等待指定地址的UInt32值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。 (继承自 DeviceCommunication。)Waiting for the UInt32 value of the specified address to be the specified value, you can specify the frequency of refreshing the data, and the timeout time to wait. If the timeout time is -1, it is an indefinite wait. | |
WaitAsync(String, UInt64, Int32, Int32) |
等待指定地址的UInt64值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。 (继承自 DeviceCommunication。)Waiting for the UInt64 value of the specified address to be the specified value, you can specify the frequency of refreshing the data, and the timeout time to wait. If the timeout time is -1, it is an indefinite wait. | |
Write(String, Boolean) |
写入单个的Boolean数据,返回是否成功 (继承自 DeviceCommunication。)Write a single Boolean data, and return whether the write was successful | |
Write(String, Double) |
写入double数据,返回是否成功 (继承自 DeviceCommunication。)Write double data, return whether the write was successful | |
Write(String, Double) |
写入double数组,返回是否成功 (继承自 DeviceCommunication。)Write double array, return whether the write was successful | |
Write(String, Int16) |
写入short数据,返回是否成功 (继承自 DeviceCommunication。)Write short data, returns whether success | |
Write(String, Int16) |
写入short数组,返回是否成功 (继承自 DeviceCommunication。)Write short array, return whether the write was successful | |
Write(String, Int32) |
写入int数据,返回是否成功 (继承自 DeviceCommunication。)Write int data, return whether the write was successful | |
Write(String, Int32) |
写入int[]数组,返回是否成功 (继承自 DeviceCommunication。)Write int array, return whether the write was successful | |
Write(String, Int64) |
写入long数据,返回是否成功 (继承自 DeviceCommunication。)Write long data, return whether the write was successful | |
Write(String, Int64) |
写入long数组,返回是否成功 (继承自 DeviceCommunication。)Write long array, return whether the write was successful | |
Write(String, Single) |
写入float数据,返回是否成功 (继承自 DeviceCommunication。)Write float data, return whether the write was successful | |
Write(String, Single) |
写入float数组,返回是否成功 (继承自 DeviceCommunication。)Write float array, return whether the write was successful | |
Write(String, String) |
写入字符串信息,编码为ASCII (继承自 DeviceCommunication。)Write string information, encoded as ASCII | |
Write(String, UInt16) |
写入ushort数据,返回是否成功 (继承自 DeviceCommunication。)Write ushort data, return whether the write was successful | |
Write(String, UInt16) |
写入ushort数组,返回是否成功 (继承自 DeviceCommunication。)Write ushort array, return whether the write was successful | |
Write(String, UInt32) |
写入uint数据,返回是否成功 (继承自 DeviceCommunication。)Write uint data, return whether the write was successful | |
Write(String, UInt32) |
写入uint[]数组,返回是否成功 (继承自 DeviceCommunication。)Write uint array, return whether the write was successful | |
Write(String, UInt64) |
写入ulong数据,返回是否成功 (继承自 DeviceCommunication。)Write ulong data, return whether the write was successful | |
Write(String, UInt64) |
写入ulong数组,返回是否成功 (继承自 DeviceCommunication。)Write ulong array, return whether the write was successful | |
Write(String, Boolean) |
批量写入Boolean数组数据,返回是否成功 (重写 DeviceCommunicationWrite(String, Boolean).)Batch write Boolean array data, return whether the write was successful | |
Write(String, Byte) |
写入原始的byte数组数据到指定的地址,返回是否写入成功 (重写 DeviceCommunicationWrite(String, Byte).)Write the original byte array data to the specified address, and return whether the write was successful | |
Write(String, String, Int32) |
写入指定长度的字符串信息,如果超出,就截断字符串,如果长度不足,那就补0操作,编码为ASCII (继承自 DeviceCommunication。)Write string information of the specified length. If it exceeds the value, the string is truncated. If the length is not enough, it is filled with 0 and the encoding is ASCII. | |
Write(String, String, Encoding) |
写入字符串信息,需要指定的编码信息 (继承自 DeviceCommunication。)Write string information, need to specify the encoding information | |
Write(String, String, Int32, Encoding) |
写入指定长度的字符串信息,如果超出,就截断字符串,如果长度不足,那就补0操作,编码为指定的编码信息 (继承自 DeviceCommunication。)Write string information of the specified length. If it exceeds the value, the string is truncated. If the length is not enough, then the operation is complemented with 0 , you should specified the encoding information | |
WriteT(T) |
写入支持Hsl特性的数据,返回是否写入成功,该特性为HslDeviceAddressAttribute,详细参考api文档说明 (继承自 DeviceCommunication。)Write data that supports the Hsl attribute, and return whether the write was successful. The attribute is HslDeviceAddressAttribute, please refer to the api documentation for details. | |
WriteAsync(String, Boolean) |
异步批量写入Boolean数组数据,返回是否成功 (继承自 DeviceCommunication。)Asynchronously batch write Boolean array data, return success | |
WriteAsync(String, Double) |
异步写入double数据,返回是否成功 (继承自 DeviceCommunication。)Asynchronously write double data, return whether the write was successful | |
WriteAsync(String, Double) |
异步写入double数组,返回是否成功 (继承自 DeviceCommunication。)Asynchronously write double array, return whether the write was successful | |
WriteAsync(String, Int16) |
异步写入short数据,返回是否成功 (继承自 DeviceCommunication。)Asynchronously write short data, returns whether success | |
WriteAsync(String, Int16) |
异步写入short数组,返回是否成功 (继承自 DeviceCommunication。)Asynchronously write short array, return whether the write was successful | |
WriteAsync(String, Int32) |
异步写入int数据,返回是否成功 (继承自 DeviceCommunication。)Asynchronously write int data, return whether the write was successful | |
WriteAsync(String, Int32) |
异步写入int[]数组,返回是否成功 (继承自 DeviceCommunication。)Asynchronously write int array, return whether the write was successful | |
WriteAsync(String, Int64) |
异步写入long数据,返回是否成功 (继承自 DeviceCommunication。)Asynchronously write long data, return whether the write was successful | |
WriteAsync(String, Int64) |
异步写入long数组,返回是否成功 (继承自 DeviceCommunication。)Asynchronously write long array, return whether the write was successful | |
WriteAsync(String, Single) |
异步写入float数据,返回是否成功 (继承自 DeviceCommunication。)Asynchronously write float data, return whether the write was successful | |
WriteAsync(String, Single) |
异步写入float数组,返回是否成功 (继承自 DeviceCommunication。)Asynchronously write float array, return whether the write was successful | |
WriteAsync(String, String) |
异步写入字符串信息,编码为ASCII (继承自 DeviceCommunication。)Asynchronously write string information, encoded as ASCII | |
WriteAsync(String, UInt16) |
异步写入ushort数据,返回是否成功 (继承自 DeviceCommunication。)Asynchronously write ushort data, return whether the write was successful | |
WriteAsync(String, UInt16) |
异步写入ushort数组,返回是否成功 (继承自 DeviceCommunication。)Asynchronously write ushort array, return whether the write was successful | |
WriteAsync(String, UInt32) |
异步写入uint数据,返回是否成功 (继承自 DeviceCommunication。)Asynchronously write uint data, return whether the write was successful | |
WriteAsync(String, UInt32) |
异步写入uint[]数组,返回是否成功 (继承自 DeviceCommunication。)Asynchronously write uint array, return whether the write was successful | |
WriteAsync(String, UInt64) |
异步写入ulong数据,返回是否成功 (继承自 DeviceCommunication。)Asynchronously write ulong data, return whether the write was successful | |
WriteAsync(String, UInt64) |
异步写入ulong数组,返回是否成功 (继承自 DeviceCommunication。)Asynchronously write ulong array, return whether the write was successful | |
WriteAsync(String, Boolean) |
批量写入Boolean数组数据,返回是否成功 (重写 DeviceCommunicationWriteAsync(String, Boolean).)Batch write Boolean array data, return whether the write was successful | |
WriteAsync(String, Byte) |
异步写入原始的byte数组数据到指定的地址,返回是否写入成功 (重写 DeviceCommunicationWriteAsync(String, Byte).)Asynchronously writes the original byte array data to the specified address, and returns whether the write was successful | |
WriteAsync(String, String, Int32) |
异步写入指定长度的字符串信息,如果超出,就截断字符串,如果长度不足,那就补0操作,编码为ASCII (继承自 DeviceCommunication。)Asynchronously write string information of the specified length. If it exceeds the value, the string is truncated. If the length is not enough, it is filled with 0 and the encoding is ASCII. | |
WriteAsync(String, String, Encoding) |
异步写入字符串信息,需要指定的编码信息 (继承自 DeviceCommunication。)Asynchronously write string information, need to specify the encoding information | |
WriteAsync(String, String, Int32, Encoding) |
异步写入指定长度的字符串信息,如果超出,就截断字符串,如果长度不足,那就补0操作,编码为指定的编码信息 (继承自 DeviceCommunication。)Asynchronously write string information of the specified length. If it exceeds the value, the string is truncated. If the length is not enough, then the operation is complemented with 0 , you should specified the encoding information | |
WriteAsyncT(T) |
异步写入支持Hsl特性的数据,返回是否写入成功,该特性为HslDeviceAddressAttribute,详细参考api文档说明 (继承自 DeviceCommunication。)Asynchronously write data that supports the Hsl attribute, and return whether the write was successful. The attribute is HslDeviceAddressAttribute, please refer to the api documentation for details. | |
WriteCustomerT |
写入自定义类型的数据,该类型必须继承自IDataTransfer接口 (继承自 DeviceCommunication。)Write data of a custom type, which must inherit from the IDataTransfer interface | |
WriteCustomerAsyncT |
写入自定义类型的数据,该类型必须继承自IDataTransfer接口 (继承自 DeviceCommunication。)Write data of a custom type, which must inherit from the IDataTransfer interface |
名称 | 说明 | |
---|---|---|
LogMsgFormatBinary |
设置日志记录报文是否二进制,如果为False,那就使用ASCII码 (继承自 BinaryCommunication。)Set whether the log message is binary, if it is False, then use ASCII code |
名称 | 说明 | |
---|---|---|
ToJsonString |
获取当前对象的JSON格式表示的字符串。 (由 HslExtension 定义。)Gets the string represented by the JSON format of the current object. |
// 实例化对象,指定PLC的ip地址和端口号 MelsecMcNet melsecMc = new MelsecMcNet( "192.168.1.110", 6000 ); // 举例读取D100的值 short D100 = melsecMc.ReadInt16( "D100" ).Content;
// 实例化对象,指定PLC的ip地址和端口号 MelsecMcNet melsecMc = new MelsecMcNet( "192.168.1.110", 6000 ); // 如果网络不太理想,配置了两个端口,一个有问题,立即切换另一个的话,可以配置如下的代码 // melsecMc.GetPipeSocket( ).SetMultiPorts( new int[] { 6000, 6001 } ); // 连接对象 OperateResult connect = melsecMc.ConnectServer( ); if (!connect.IsSuccess) { Console.WriteLine( "connect failed:" + connect.Message ); return; } // 举例读取D100的值 short D100 = melsecMc.ReadInt16( "D100" ).Content; // 实际上所有的读写都是返回是否成功的标记的,在实际的开发中,需要严格的判定,怎么判定呢?如下的代码 // In fact, all reads and writes return the flags of success. In actual development, strict judgment is required. How to judge? The following code OperateResult<short> readD100 = melsecMc.ReadInt16( "D100" ); if (readD100.IsSuccess) { // 读取成功,这时候获取Content才是正确的值 // The reading is successful, and the Content is the correct value at this time. short value = readD100.Content; } else { // 读取失败,如果仍然坚持去获取Content的值,就为0 // Failed to read, if it still persists to get the value of Content, it is 0 } // 读写是否成功的情况,应用于几乎所有的读写代码,只要看清楚返回的数据类型即可 // Whether the reading and writing is successful is applied to almost all reading and writing codes, as long as the type of data returned is clear melsecMc.ConnectClose( );
MelsecMcNet melsec_net = new MelsecMcNet( "192.168.0.100", 6000 ); // melsec_net.CommunicationPipe.IsPersistentConnection = false; // 如果想设置短连接的话 // 此处以D寄存器作为示例,此处没有判断是否读写成功,所以是有风险的,如果通讯失败,所有的值都不是正确的 // The D register is used as an example here. There is no judgment whether the read or write is successful, so it is risky. // If the communication fails, all values are incorrect short short_D1000 = melsec_net.ReadInt16( "D1000" ).Content; // 读取D1000的short值 ushort ushort_D1000 = melsec_net.ReadUInt16( "D1000" ).Content; // 读取D1000的ushort值 int int_D1000 = melsec_net.ReadInt32( "D1000" ).Content; // 读取D1000-D1001组成的int数据 uint uint_D1000 = melsec_net.ReadUInt32( "D1000" ).Content; // 读取D1000-D1001组成的uint数据 float float_D1000 = melsec_net.ReadFloat( "D1000" ).Content; // 读取D1000-D1001组成的float数据 long long_D1000 = melsec_net.ReadInt64( "D1000" ).Content; // 读取D1000-D1003组成的long数据 ulong ulong_D1000 = melsec_net.ReadUInt64( "D1000" ).Content; // 读取D1000-D1003组成的long数据 double double_D1000 = melsec_net.ReadDouble( "D1000" ).Content; // 读取D1000-D1003组成的double数据 string str_D1000 = melsec_net.ReadString( "D1000", 10 ).Content; // 读取D1000-D1009组成的条码数据 // 读取数组 short[] short_D1000_array = melsec_net.ReadInt16( "D1000", 10 ).Content; // 读取D1000的short值 ushort[] ushort_D1000_array = melsec_net.ReadUInt16( "D1000", 10 ).Content; // 读取D1000的ushort值 int[] int_D1000_array = melsec_net.ReadInt32( "D1000", 10 ).Content; // 读取D1000-D1001组成的int数据 uint[] uint_D1000_array = melsec_net.ReadUInt32( "D1000", 10 ).Content; // 读取D1000-D1001组成的uint数据 float[] float_D1000_array = melsec_net.ReadFloat( "D1000", 10 ).Content; // 读取D1000-D1001组成的float数据 long[] long_D1000_array = melsec_net.ReadInt64( "D1000", 10 ).Content; // 读取D1000-D1003组成的long数据 ulong[] ulong_D1000_array = melsec_net.ReadUInt64( "D1000", 10 ).Content; // 读取D1000-D1003组成的long数据 double[] double_D1000_array = melsec_net.ReadDouble( "D1000", 10 ).Content; // 读取D1000-D1003组成的double数据 // 正常的安全的操作如下,每一行都需要转变下面的代码 // The normal and safe operation is as follows, each line needs to change the following code OperateResult<short> resultD1000 = melsec_net.ReadInt16( "D1000" ); if (resultD1000.IsSuccess) { Console.WriteLine( resultD1000.Content ); }
MelsecMcNet melsec_net = new MelsecMcNet( "192.168.0.100", 6000 ); // 下面演示读取连续的地址的数据,实际中连续的地址,存储的数据类型不一样,可能既有short,又有int,又有float,还可能有倍数计算的关系 // 所以此处假设, // D100存储的short,10倍的温度值,例如值为 1234,实际表示 123.4℃ // D101存储的short,100倍的压力值,例如值为 456, 实际表示 4.56 Mpa // D102存储的int,生产产量计数 // D104-D108 共计5个D存储了10个字符,表示条码 OperateResult<byte[]> read = melsec_net.Read( "D100", 10 ); // 读出来20个字节长度的结果 if(read.IsSuccess) { float temp = melsec_net.ByteTransform.TransInt16( read.Content, 0 ) / 10f; float press = melsec_net.ByteTransform.TransInt16( read.Content, 2 ) / 100f; int count = melsec_net.ByteTransform.TransInt32( read.Content, 4 ); string barcode = melsec_net.ByteTransform.TransString( read.Content, 8, 10, Encoding.ASCII ); // do something } else { // failed }
// 随机读取的示例,所谓的随机读取,就是跨地址读取数据 // 下面我们举个例子,我们读取D100的值,D200的值,M32的值,W100的值,如何一次就读取出来呢? MelsecMcNet melsec_net = new MelsecMcNet( "192.168.0.100", 6000 ); OperateResult<byte[]> read = melsec_net.ReadRandom( new string[] { "D100", "D200", "M32", "W100" } ); if (read.IsSuccess) { short d100 = melsec_net.ByteTransform.TransInt16( read.Content, 0 ); short d200 = melsec_net.ByteTransform.TransInt16( read.Content, 2 ); short w100 = melsec_net.ByteTransform.TransInt16( read.Content, 6 ); // M是位地址,提取稍微麻烦一点点 bool[] array = HslCommunication.BasicFramework.SoftBasic.ByteToBoolArray( melsec_net.ByteTransform.TransByte( read.Content, 4, 2 ) ); bool m32 = array[0]; bool m33 = array[1]; bool m34 = array[2]; bool m35 = array[3]; // 等等,按照规律操作就可以 // do something } else { // failed }
// 随机读取的示例,所谓的随机读取,就是跨地址读取数据 // 下面我们举个例子,我们读取D100-D104的值,D200-D209的值,M32-M47的值,W100-W104的值,如何一次就读取出来呢? MelsecMcNet melsec_net = new MelsecMcNet( "192.168.0.100", 6000 ); OperateResult<byte[]> read = melsec_net.ReadRandom( new string[] { "D100", "D200", "M32", "W100" }, new ushort[] { 5, 10, 1, 5 } ); if (read.IsSuccess) { short d100 = melsec_net.ByteTransform.TransInt16( read.Content, 0 ); short d101 = melsec_net.ByteTransform.TransInt16( read.Content, 2 ); short d102 = melsec_net.ByteTransform.TransInt16( read.Content, 4 ); short d103 = melsec_net.ByteTransform.TransInt16( read.Content, 6 ); short d104 = melsec_net.ByteTransform.TransInt16( read.Content, 8 ); short d200 = melsec_net.ByteTransform.TransInt16( read.Content, 10 ); short d201 = melsec_net.ByteTransform.TransInt16( read.Content, 12 ); // 等等 short w100 = melsec_net.ByteTransform.TransInt16( read.Content, 32 ); short w101 = melsec_net.ByteTransform.TransInt16( read.Content, 34 ); short w102 = melsec_net.ByteTransform.TransInt16( read.Content, 36 ); short w103 = melsec_net.ByteTransform.TransInt16( read.Content, 38 ); short w104 = melsec_net.ByteTransform.TransInt16( read.Content, 40 ); // M是位地址,提取稍微麻烦一点点 bool[] array = HslCommunication.BasicFramework.SoftBasic.ByteToBoolArray( melsec_net.ByteTransform.TransByte( read.Content, 30, 2 ) ); bool m32 = array[0]; bool m33 = array[1]; bool m34 = array[2]; bool m35 = array[3]; // 等等,按照规律操作就可以 // do something } else { // failed }