SiemensS7Net 类 |
命名空间: HslCommunication.Profinet.Siemens
SiemensS7Net 类型公开以下成员。
名称 | 说明 | |
---|---|---|
SiemensS7Net(SiemensPLCS) |
实例化一个西门子的S7协议的通讯对象 Instantiate a communication object for a Siemens S7 protocol | |
SiemensS7Net(SiemensPLCS, String) |
实例化一个西门子的S7协议的通讯对象并指定Ip地址 Instantiate a communication object for a Siemens S7 protocol and specify an IP address |
名称 | 说明 | |
---|---|---|
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. | |
ConnectionType |
获取或设置当前PLC的连接方式,PG: 0x01,OP: 0x02,S7Basic: 0x03...0x10 Get or set the current PLC connection mode, PG: 0x01, OP: 0x02, S7Basic: 0x03...0x10 | |
ConnectTimeOut |
获取或设置接收服务器反馈的时间,如果为负数,则不接收反馈 (继承自 DeviceTcpNet。)Gets or sets the time to receive server feedback, and if it is a negative number, does not receive feedback | |
DestTSAP |
西门子相关的远程TSAP参数信息 A parameter information related to Siemens | |
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 | |
LocalTSAP |
西门子相关的本地TSAP参数信息 A parameter information related to Siemens | |
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 | |
PDULength |
获取当前西门子的PDU的长度信息,不同型号PLC的值会不一样。 Get the length information of the current Siemens PDU, the value of different types of PLC will be different. | |
Port |
获取或设置服务器的端口号,具体的值需要取决于对方的配置 (继承自 DeviceTcpNet。)Gets or sets the port number of the server. The specific value depends on the configuration of the other party. | |
Rack |
PLC的机架号,针对S7-400的PLC设置的 The frame number of the PLC is set for the PLC of s7-400 | |
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. | |
Slot |
PLC的槽号,针对S7-400的PLC设置的 The slot number of PLC is set for PLC of s7-400 | |
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. | |
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 |
名称 | 说明 | |
---|---|---|
BuildBitReadCommand |
生成一个位读取数据指令头的通用方法 ->
A general method for generating a bit-read-Data instruction header
| |
BuildReadCommand |
A general method for generating a command header to read a Word data
| |
BuildWriteBitCommand |
生成一个写入位数据的指令 -> Generate an instruction to write bit data
| |
BuildWriteByteCommand(S7AddressData, Byte, Int32) |
生成一个写入字节数据的指令 -> Generate an instruction to write byte data
| |
BuildWriteByteCommand(S7AddressData, ListByte, Int32) |
生成一个写入字节数据的指令 -> Generate an instruction to write byte data
| |
CancelAllForce |
取消所有强制输出,针对PLC类型为 200smart 时有效 Cancel all forced outputs, effective for PLC type 200smart | |
ColdStart |
对PLC进行冷启动,目前仅适用于200smart型号 Cold start for PLC, currently only applicable to 200smart model | |
ColdStartAsync |
对PLC进行冷启动,目前仅适用于200smart型号 Cold start for PLC, currently only applicable to 200smart model | |
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。) | |
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. | |
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。) | |
ForceBool |
强制输出一个位到指定的地址,针对PLC类型为 200smart 时有效 Force output one bit to the specified address, valid for PLC type 200smart | |
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 | |
HotStart |
对PLC进行热启动,目前仅适用于200smart型号 Hot start for PLC, currently only applicable to 200smart model | |
HotStartAsync |
对PLC进行热启动,目前仅适用于200smart型号 Hot start for PLC, currently only applicable to 200smart model | |
InitializationOnConnect |
根据实际的协议选择是否重写本方法,有些协议在创建连接之后,需要进行一些初始化的信号握手,才能最终建立网络通道。 (重写 BinaryCommunicationInitializationOnConnect.)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 |
根据实际的协议选择是否重写本方法,有些协议在创建连接之后,需要进行一些初始化的信号握手,才能最终建立网络通道。 (重写 BinaryCommunicationInitializationOnConnectAsync.)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 | |
MemberwiseClone | Creates a shallow copy of the current Object. (继承自 Object。) | |
PackCommandWithHeader |
对当前的命令进行打包处理,通常是携带命令头内容,标记当前的命令的长度信息,需要进行重写,否则默认不打包 (继承自 BinaryCommunication。)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(S7AddressData) |
读取西门子的地址数据信息,支持任意个数的数据读取 Read Siemens address data information, support any number of data reading | |
Read(String, UInt16) |
从PLC读取原始的字节数据,地址格式为I100,Q100,DB20.100,M100,长度参数以字节为单位 (重写 DeviceCommunicationRead(String, UInt16).)Read the original byte data from the PLC, the address format is I100, Q100, DB20.100, M100, length parameters in bytes | |
Read(String, UInt16) |
一次性从PLC获取所有的数据,按照先后顺序返回一个统一的Buffer,需要按照顺序处理,两个数组长度必须一致,数组长度无限制 One-time from the PLC to obtain all the data, in order to return a unified buffer, need to be processed sequentially, two array length must be consistent | |
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(S7AddressData) |
读取西门子的地址数据信息,支持任意个数的数据读取 Read Siemens address data information, support any number of data reading | |
ReadAsync(String, UInt16) |
从PLC读取原始的字节数据,地址格式为I100,Q100,DB20.100,M100,长度参数以字节为单位 (重写 DeviceCommunicationReadAsync(String, UInt16).)Read the original byte data from the PLC, the address format is I100, Q100, DB20.100, M100, length parameters in bytes | |
ReadAsync(String, UInt16) |
一次性从PLC获取所有的数据,按照先后顺序返回一个统一的Buffer,需要按照顺序处理,两个数组长度必须一致,数组长度无限制 One-time from the PLC to obtain all the data, in order to return a unified buffer, need to be processed sequentially, two array length must be consistent | |
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) |
读取指定地址的bool数据,地址格式为I100,M100,Q100,DB20.100 (重写 DeviceCommunicationReadBool(String).)reads bool data for the specified address in the format I100,M100,Q100,DB20.100 | |
ReadBool(String, UInt16) |
读取指定地址的bool数组,地址格式为I100,M100,Q100,DB20.100 (重写 DeviceCommunicationReadBool(String, UInt16).)reads bool array data for the specified address in the format I100,M100,Q100,DB20.100 | |
ReadBoolAsync(String) |
读取指定地址的bool数据,地址格式为I100,M100,Q100,DB20.100 (重写 DeviceCommunicationReadBoolAsync(String).)reads bool data for the specified address in the format I100,M100,Q100,DB20.100 | |
ReadBoolAsync(String, UInt16) |
读取指定地址的bool数组,地址格式为I100,M100,Q100,DB20.100 (重写 DeviceCommunicationReadBoolAsync(String, UInt16).)reads bool array data for the specified address in the format I100,M100,Q100,DB20.100 | |
ReadByte |
读取指定地址的byte数据,地址格式I100,M100,Q100,DB20.100 Reads the byte data of the specified address, the address format I100,Q100,DB20.100,M100 | |
ReadByteAsync |
读取指定地址的byte数据,地址格式I100,M100,Q100,DB20.100 Reads the byte data of the specified address, the address format I100,Q100,DB20.100,M100 | |
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. | |
ReadDate |
从PLC中读取日期格式的数据 Read data in date format from PLC | |
ReadDateAsync |
从PLC中读取日期格式的数据 Read data in date format from PLC | |
ReadDateTime |
从PLC中读取时间格式的数据 Read time format data from PLC | |
ReadDateTimeAsync |
从PLC中读取时间格式的数据 Read time format data from PLC | |
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 | |
ReadDTLDataTime |
从PLC中读取DTL时间格式的数据
| |
ReadDTLDataTimeAsync |
从PLC中读取DTL时间格式的数据
| |
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) |
使用指定的管道来进行数据通信,发送原始数据到管道,然后从管道接收相关的数据返回,本方法无锁
(重写 BinaryCommunicationReadFromCoreServer(CommunicationPipe, Byte, Boolean, Boolean).) | |
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) |
使用指定的管道来进行数据通信,发送原始数据到管道,然后从管道接收相关的数据返回,本方法无锁
(重写 BinaryCommunicationReadFromCoreServerAsync(CommunicationPipe, Byte, Boolean, Boolean).) | |
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 | |
ReadOrderNumber |
从PLC读取订货号信息 Reading order number information from PLC | |
ReadOrderNumberAsync |
从PLC读取订货号信息 Reading order number information from PLC | |
ReadString(String) |
读取西门子的地址的字符串信息,这个信息是和西门子绑定在一起,长度随西门子的信息动态变化的 Read the Siemens address string information. This information is bound to Siemens and its length changes dynamically with the Siemens information | |
ReadString(String, UInt16) |
读取字符串数据,默认为最常见的ASCII编码 (继承自 DeviceCommunication。)Read string data, default is the most common ASCII encoding | |
ReadString(String, Encoding) |
读取西门子的地址的字符串信息,这个信息是和西门子绑定在一起,长度随西门子的信息动态变化的 Read the Siemens address string information. This information is bound to Siemens and its length changes dynamically with the Siemens information | |
ReadString(String, UInt16, Encoding) |
使用指定的编码,读取字符串数据 (重写 DeviceCommunicationReadString(String, UInt16, Encoding).)Reads string data using the specified encoding | |
ReadStringAsync(String) |
读取西门子的地址的字符串信息,这个信息是和西门子绑定在一起,长度随西门子的信息动态变化的 Read the Siemens address string information. This information is bound to Siemens and its length changes dynamically with the Siemens information | |
ReadStringAsync(String, UInt16) |
异步读取字符串数据,默认为最常见的ASCII编码 (继承自 DeviceCommunication。)Asynchronously read string data, default is the most common ASCII encoding | |
ReadStringAsync(String, Encoding) |
读取西门子的地址的字符串信息,这个信息是和西门子绑定在一起,长度随西门子的信息动态变化的 Read the Siemens address string information. This information is bound to Siemens and its length changes dynamically with the Siemens information | |
ReadStringAsync(String, UInt16, Encoding) |
异步使用指定的编码,读取字符串数据 (重写 DeviceCommunicationReadStringAsync(String, UInt16, Encoding).)Asynchronously reads string data using the specified encoding | |
ReadStructT |
读取结构体类型的数据,根据结构体自身的定义,读取原始字节数组,然后解析出实际的结构体数据,结构体需要实现HslStructAttribute特性
(继承自 DeviceCommunication。) | |
ReadStructAsyncT |
读取结构体类型的数据,根据结构体自身的定义,读取原始字节数组,然后解析出实际的结构体数据,结构体需要实现HslStructAttribute特性
(继承自 DeviceCommunication。) | |
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 | |
ReadWString |
读取西门子的地址的字符串信息,这个信息是和西门子绑定在一起,长度随西门子的信息动态变化的 Read the Siemens address string information. This information is bound to Siemens and its length changes dynamically with the Siemens information | |
ReadWStringAsync |
读取西门子的地址的字符串信息,这个信息是和西门子绑定在一起,长度随西门子的信息动态变化的 Read the Siemens address string information. This information is bound to Siemens and its length changes dynamically with the Siemens information | |
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. | |
Stop |
对PLC进行停止,目前仅适用于200smart型号 Stop the PLC, currently only applicable to the 200smart model | |
StopAsync |
对PLC进行停止,目前仅适用于200smart型号 Stop the PLC, currently only applicable to the 200smart model | |
ToString | Returns a string that represents the current object. (重写 DeviceTcpNetToString.) | |
UnpackResponseContent |
根据对方返回的报文命令,对命令进行基本的拆包,例如各种Modbus协议拆包为统一的核心报文,还支持对报文的验证 (继承自 BinaryCommunication。)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, 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) |
写入PLC的一个位,例如"M100.6","I100.7","Q100.0","DB20.100.0",如果只写了"M100"默认为"M100.0" (重写 DeviceCommunicationWrite(String, Boolean).)Write a bit of PLC, for example "M100.6", "I100.7", "Q100.0", "DB20.100.0", if only write "M100" defaults to "M100.0" | |
Write(String, Boolean) |
[警告] 向PLC中写入bool数组,比如你写入M100,那么data[0]对应M100.0,写入的长度应该小于1600位 (重写 DeviceCommunicationWrite(String, Boolean).)[Warn] Write the bool array to the PLC, for example, if you write M100, then data[0] corresponds to M100.0, The length of the write should be less than 1600 bits | |
Write(String, Byte) |
向PLC中写入byte数据,返回值说明 Write byte data to the PLC, return value description | |
Write(String, Byte) |
将数据写入到PLC数据,地址格式为I100,Q100,DB20.100,M100,以字节为单位 (重写 DeviceCommunicationWrite(String, Byte).)Writes data to the PLC data, in the address format I100,Q100,DB20.100,M100, in bytes | |
Write(String, DateTime) |
向PLC中写入时间格式的数据 Writes data in time format to the PLC | |
Write(String, ListByte) |
使用离散的方式,同时写入多个数据块到不同的地址中去,但是支持的地址数量及写入数据的最大长度是有限制的,不能超过pdu长度限制。 Using the discrete method, multiple blocks of data are written to different addresses at the same time, but the number of supported addresses and the maximum length of the data written are limited, and cannot exceed the PDU length limit. | |
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) |
写入字符串信息,需要指定的编码信息 (重写 DeviceCommunicationWrite(String, String, Encoding).)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, 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) |
写入PLC的一个位,例如"M100.6","I100.7","Q100.0","DB20.100.0",如果只写了"M100"默认为"M100.0" (重写 DeviceCommunicationWriteAsync(String, Boolean).)Write a bit of PLC, for example "M100.6", "I100.7", "Q100.0", "DB20.100.0", if only write "M100" defaults to "M100.0" | |
WriteAsync(String, Boolean) |
[警告] 向PLC中写入bool数组,比如你写入M100,那么data[0]对应M100.0,写入的长度应该小于1600位 (重写 DeviceCommunicationWriteAsync(String, Boolean).)[Warn] Write the bool array to the PLC, for example, if you write M100, then data[0] corresponds to M100.0, The length of the write should be less than 1600 bits | |
WriteAsync(String, Byte) |
向PLC中写入byte数据,返回值说明 Write byte data to the PLC, return value description | |
WriteAsync(String, Byte) |
将数据写入到PLC数据,地址格式为I100,Q100,DB20.100,M100,以字节为单位 (重写 DeviceCommunicationWriteAsync(String, Byte).)Writes data to the PLC data, in the address format I100,Q100,DB20.100,M100, in bytes | |
WriteAsync(String, DateTime) |
向PLC中写入时间格式的数据 Writes data in time format to the PLC | |
WriteAsync(String, ListByte) |
使用离散的方式,同时写入多个数据块到不同的地址中去,但是支持的地址数量及写入数据的最大长度是有限制的,不能超过pdu长度限制。 Using the discrete method, multiple blocks of data are written to different addresses at the same time, but the number of supported addresses and the maximum length of the data written are limited, and cannot exceed the PDU length limit. | |
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) |
将指定的字符串写入到西门子PLC里面去,将自动添加字符串长度信息,方便PLC识别字符串的内容。 (重写 DeviceCommunicationWriteAsync(String, String, Encoding).)Write the specified string into Siemens PLC, and the string length information will be automatically added, which is convenient for PLC to identify the content of the string. | |
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 | |
WriteDate |
向PLC中写入日期格式的数据,日期格式里只有年,月,日 Write data in date format to PLC, only year, month, day in date format | |
WriteDateAsync |
向PLC中写入日期格式的数据,日期格式里只有年,月,日 Write data in date format to PLC, only year, month, day in date format | |
WriteDTLTime |
向PLC中写入DTL格式的时间数据信息
| |
WriteDTLTimeAsync |
向PLC中写入DTL格式的时间数据信息
| |
WriteWString |
使用双字节编码的方式,将字符串以 Unicode 编码写入到PLC的地址里,可以使用中文。 Use the double-byte encoding method to write the character string to the address of the PLC in Unicode encoding. Chinese can be used. | |
WriteWStringAsync |
使用双字节编码的方式,将字符串以 Unicode 编码写入到PLC的地址里,可以使用中文。 Use the double-byte encoding method to write the character string to the address of the PLC in Unicode encoding. Chinese can be used. |
名称 | 说明 | |
---|---|---|
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. |
重要事项 |
---|
对于200smartPLC的V区,就是DB1.X,例如,V100=DB1.100,当然了你也可以输入V100 |
重要事项 |
---|
对于200smartPLC的V区,就是DB1.X,例如,V100=DB1.100 |
// 实例化对象,指定PLC的ip地址 SiemensS7Net siemens = new SiemensS7Net( SiemensPLCS.S1200," 192.168.1.110" ); // 举例读取M100的值 short M100 = siemens.ReadInt16( "M100" ).Content;
// 实例化对象,指定PLC的ip地址和端口号 SiemensS7Net siemens = new SiemensS7Net( SiemensPLCS.S1200, " 192.168.1.110" ); // 连接对象 OperateResult connect = siemens.ConnectServer( ); if (!connect.IsSuccess) { Console.WriteLine( "connect failed:" + connect.Message ); return; } // 举例读取M100的值 short M100 = siemens.ReadInt16( "M100" ).Content; // 如果需要判断是否读取成功 OperateResult<short> read = siemens.ReadInt16( "M100" ); if (!read.IsSuccess) { Console.WriteLine( "read failed:" + read.Message ); return; } Console.WriteLine( "read value:" + read.Content ); // 写入的原理是一样的 OperateResult write = siemens.Write( "M100", (short)100 ); if (!write.IsSuccess) { Console.WriteLine( "write failed:" + write.Message ); return; } // 使用完毕之后,关闭连接 siemens.ConnectClose( );
SiemensS7Net siemens = new SiemensS7Net( SiemensPLCS.S1200, " 192.168.1.110" ); OperateResult<byte[]> read = siemens.Read( "M100", 8 ); if (read.IsSuccess) { float temp = siemens.ByteTransform.TransInt16( read.Content, 0 ) / 10f; float press = siemens.ByteTransform.TransInt16( read.Content, 2 ) / 100f; int count = siemens.ByteTransform.TransInt32( read.Content, 2 ); // do something } else { // failed }
SiemensS7Net siemensTcpNet = new SiemensS7Net( SiemensPLCS.S1200, " 192.168.1.110" ); // 此处以M100寄存器作为示例 byte byte_M100 = siemensTcpNet.ReadByte( "M100" ).Content; // 读取M100的值 short short_M100 = siemensTcpNet.ReadInt16( "M100" ).Content; // 读取M100-M101组成的字 ushort ushort_M100 = siemensTcpNet.ReadUInt16( "M100" ).Content; // 读取M100-M101组成的无符号的值 int int_M100 = siemensTcpNet.ReadInt32( "M100" ).Content; // 读取M100-M103组成的有符号的数据 uint uint_M100 = siemensTcpNet.ReadUInt32( "M100" ).Content; // 读取M100-M103组成的无符号的值 float float_M100 = siemensTcpNet.ReadFloat( "M100" ).Content; // 读取M100-M103组成的单精度值 long long_M100 = siemensTcpNet.ReadInt64( "M100" ).Content; // 读取M100-M107组成的大数据值 ulong ulong_M100 = siemensTcpNet.ReadUInt64( "M100" ).Content; // 读取M100-M107组成的无符号大数据 double double_M100 = siemensTcpNet.ReadDouble( "M100" ).Content; // 读取M100-M107组成的双精度值 string str_M100 = siemensTcpNet.ReadString( "M100", 10 ).Content;// 读取M100-M109组成的ASCII字符串数据 // 读取数组 short[] short_M100_array = siemensTcpNet.ReadInt16( "M100" ,10).Content; // 读取M100-M101组成的字 ushort[] ushort_M100_array = siemensTcpNet.ReadUInt16( "M100", 10 ).Content; // 读取M100-M101组成的无符号的值 int[] int_M100_array = siemensTcpNet.ReadInt32( "M100", 10 ).Content; // 读取M100-M103组成的有符号的数据 uint[] uint_M100_array = siemensTcpNet.ReadUInt32( "M100", 10 ).Content; // 读取M100-M103组成的无符号的值 float[] float_M100_array = siemensTcpNet.ReadFloat( "M100", 10 ).Content; // 读取M100-M103组成的单精度值 long[] long_M100_array = siemensTcpNet.ReadInt64( "M100", 10 ).Content; // 读取M100-M107组成的大数据值 ulong[] ulong_M100_array = siemensTcpNet.ReadUInt64( "M100", 10 ).Content; // 读取M100-M107组成的无符号大数据 double[] double_M100_array = siemensTcpNet.ReadDouble( "M100", 10 ).Content; // 读取M100-M107组成的双精度值
SiemensS7Net siemens = new SiemensS7Net( SiemensPLCS.S1200, " 192.168.1.110" ); // 此处以M100寄存器作为示例 siemens.Write( "M100", (short)1234 ); // 写入M100 short值 ,W3C0,R3C0 效果是一样的 siemens.Write( "M100", (ushort)45678 ); // 写入M100 ushort值 siemens.Write( "M100", 1234566 ); // 写入M100 int值 siemens.Write( "M100", (uint)1234566 ); // 写入M100 uint值 siemens.Write( "M100", 123.456f ); // 写入M100 float值 siemens.Write( "M100", 123.456d ); // 写入M100 double值 siemens.Write( "M100", 123456661235123534L ); // 写入M100 long值 siemens.Write( "M100", 523456661235123534UL ); // 写入M100 ulong值 siemens.Write( "M100", "K123456789" ); // 写入M100 string值 // 读取数组 siemens.Write( "M100", new short[] { 123, 3566, -123 } ); // 写入M100 short值 ,W3C0,R3C0 效果是一样的 siemens.Write( "M100", new ushort[] { 12242, 42321, 12323 } ); // 写入M100 ushort值 siemens.Write( "M100", new int[] { 1234312312, 12312312, -1237213 } ); // 写入M100 int值 siemens.Write( "M100", new uint[] { 523123212, 213, 13123 } ); // 写入M100 uint值 siemens.Write( "M100", new float[] { 123.456f, 35.3f, -675.2f } ); // 写入M100 float值 siemens.Write( "M100", new double[] { 12343.542312d, 213123.123d, -231232.53432d } ); // 写入M100 double值 siemens.Write( "M100", new long[] { 1231231242312, 34312312323214, -1283862312631823 } ); // 写入M100 long值 siemens.Write( "M100", new ulong[] { 1231231242312, 34312312323214, 9731283862312631823 } ); // 写入M100 ulong值
// 实例化 SiemensS7Net siemens = new SiemensS7Net( SiemensPLCS.S1200, " 192.168.1.110" ); // 假设我要的数据在 M,I,Q三个数据块,实际上是任意的数据库信息 // 下面的是什么意思,我一条指定读取了M100-M119,I0-I9,Q0-Q14共计45个字节的数据内容 // 怎么样提取呢? OperateResult<byte[]> read = siemens.Read( new string[] { "M100", "I0", "Q0" }, new ushort[] { 20, 10, 15 } ); // 使用下面的读取代码也是一样的效果,方便做个对比 //OperateResult<byte[]> read = siemens.Read( // new HslCommunication.Core.Address.S7AddressData[] // { // HslCommunication.Core.Address.S7AddressData.ParseFrom("M100", 20).Content, // HslCommunication.Core.Address.S7AddressData.ParseFrom("I0", 10).Content, // HslCommunication.Core.Address.S7AddressData.ParseFrom("Q0", 15).Content, // } ); if (read.IsSuccess) { // 示例提取几个M的数据,实际的代码取决于PLC的定义 float temp = siemens.ByteTransform.TransInt16( read.Content, 0 ) / 10f; float press = siemens.ByteTransform.TransInt16( read.Content, 2 ) / 100f; int count = siemens.ByteTransform.TransInt32( read.Content, 2 ); // 下面演示提取 I1.2 的通断情况 bool i_1_2 = (read.Content[21] & 0x04) == 0x04; // 下面再演示提取 Q0.0 的通断情况 bool q_0_0 = (read.Content[30] & 0x01) == 0x01; // 下面演示批量读取bool数据,从I0.0~I9.7 bool[] inputArray = HslCommunication.BasicFramework.SoftBasic.ByteToBoolArray( siemens.ByteTransform.TransByte( read.Content, 20, 10 ) ); // inputArray[0] = I0.0 // inputArray[1] = I0.1 // inputArray[2] = I0.2 // inputArray[3] = I0.3 // inputArray[4] = I0.4 // inputArray[5] = I0.5 // inputArray[6] = I0.6 // inputArray[7] = I0.7 // inputArray[8] = I1.0 // inputArray[9] = I1.1 // 以此类推 // do something } else { // failed } siemens.ConnectClose( ); // 关闭连接
SiemensS7Net siemens = new SiemensS7Net( SiemensPLCS.S1200, " 192.168.1.110" ); // 如果以指定的长度去读取的话 OperateResult<string> readstring1 = siemens.ReadString( "DB1.0", 7 ); if (readstring1.IsSuccess) { // FE 05 31 32 33 34 35 转string,前两个字节乱码 Console.WriteLine( readstring1.Content ); } // 指定长度必须按照如下方式 OperateResult<string> readstring2 = siemens.ReadString( "DB1.2", 5 ); if (readstring2.IsSuccess) { // 31 32 33 34 35 转string,就是12345 Console.WriteLine( readstring2.Content ); } // 如何自动适配长度呢? OperateResult<string> readstring3 = siemens.ReadString( "DB1.0" ); if (readstring3.IsSuccess) { // 31 32 33 34 35 转string,前两个字节乱码 Console.WriteLine( readstring3.Content ); } siemens.Write( "DB1.0", "12345" ); // 对应的写入 // 如果是有中文的普通字符串,需要使用 OperateResult<string> readstring4 = siemens.ReadString( "DB1.0", Encoding.GetEncoding( "gb2312" ) ); if (readstring4.IsSuccess) { // 31 32 33 34 35 转string,前两个字节乱码 Console.WriteLine( readstring4.Content ); } siemens.Write( "DB1.0", "国产之光", Encoding.GetEncoding( "gb2312" ) ); // 对应的写入 // 以下针对的是 WString 字符串类型 OperateResult<string> readstring5 = siemens.ReadWString( "DB1.0" ); if (readstring5.IsSuccess) { Console.WriteLine( readstring5.Content ); } siemens.WriteWString( "DB1.0", "国产之光" ); // 对应的写入