点击或拖拽改变大小

SiemensS7Net 类

一个西门子的客户端类,使用S7协议来进行数据交互,对于s300,s400需要关注SlotRack的设置值, 对于s200,需要关注LocalTSAPDestTSAP的设置值,详细参考demo的设置。
A Siemens client class uses the S7 protocol for data exchange. For s300 and s400, you need to pay attention to the setting values of Slot and Rack. For s200, you need to pay attention to Slot and Rack. See cref="LocalTSAP"/> and DestTSAP settings, please refer to the demo settings for details.
继承层次
SystemObject
  HslCommunication.Core.NetNetworkBase
    HslCommunication.Core.NetNetworkDoubleBase
      HslCommunication.Core.NetNetworkDeviceBase
        HslCommunication.Profinet.SiemensSiemensS7Net

命名空间:  HslCommunication.Profinet.Siemens
程序集:  HslCommunication (在 HslCommunication.dll 中) 版本:11.8.2.0 (11.8.2.0)
语法
public class SiemensS7Net : NetworkDeviceBase

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
Top
属性
  名称说明
公共属性AlienSession
当前的异形连接对象,如果设置了异形连接的话,仅用于异形模式的情况使用
The current alien connection object, if alien connection is set, is only used in the case of alien mode
(继承自 NetworkDoubleBase。)
公共属性代码示例ByteTransform
当前的数据变换机制,当你需要从字节数据转换类型数据的时候需要。
The current data transformation mechanism is required when you need to convert type data from byte data.
(继承自 NetworkDoubleBase。)
公共属性ConnectionId
当前连接的唯一ID号,默认为长度20的guid码加随机数组成,方便列表管理,也可以自己指定
The unique ID number of the current connection. The default is a 20-digit guid code plus a random number.
(继承自 NetworkDoubleBase。)
公共属性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
获取或设置连接的超时时间,单位是毫秒
Gets or sets the timeout for the connection, in milliseconds
(继承自 NetworkDoubleBase。)
公共属性DestTSAP
西门子相关的远程TSAP参数信息
A parameter information related to Siemens
公共属性代码示例IpAddress
获取或是设置远程服务器的IP地址,如果是本机测试,那么需要设置为127.0.0.1
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
(继承自 NetworkDoubleBase。)
公共属性LocalBinding
获取或设置绑定的本地的IP地址和端口号信息,如果端口设置为0,代表任何可用的端口
Get or set the bound local IP address and port number information, if the port is set to 0, it means any available port
(继承自 NetworkDoubleBase。)
公共属性LocalTSAP
西门子相关的本地TSAP参数信息
A parameter information related to Siemens
公共属性代码示例LogNet
组件的日志工具,支持日志记录,只要实例化后,当前网络的基本信息,就以DEBUG等级进行输出
The component's logging tool supports logging. As long as the instantiation of the basic network information, the output will be output at DEBUG
(继承自 NetworkBase。)
公共属性PDULength
获取当前西门子的PDU的长度信息,不同型号PLC的值会不一样。
Get the length information of the current Siemens PDU, the value of different types of PLC will be different.
公共属性代码示例Port
获取或设置服务器的端口号,具体的值需要取决于对方的配置
Gets or sets the port number of the server. The specific value depends on the configuration of the other party.
(继承自 NetworkDoubleBase。)
公共属性Rack
PLC的机架号,针对S7-400的PLC设置的
The frame number of the PLC is set for the PLC of s7-400
公共属性代码示例ReceiveTimeOut
获取或设置接收服务器反馈的时间,如果为负数,则不接收反馈
Gets or sets the time to receive server feedback, and if it is a negative number, does not receive feedback
(继承自 NetworkDoubleBase。)
公共属性SendBeforeHex
获取或设置在发送通信报文前追加发送的字节信息,HEX格式,通常用于lora组网时,需要携带 00 00 00 02 四个字节的站地址功能。
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.
(继承自 NetworkDoubleBase。)
公共属性SleepTime
获取或设置在正式接收对方返回数据前的时候,需要休息的时间,当设置为0的时候,不需要休息。
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.
(继承自 NetworkDoubleBase。)
公共属性Slot
PLC的槽号,针对S7-400的PLC设置的
The slot number of PLC is set for PLC of s7-400
公共属性SocketKeepAliveTime
获取或设置客户端的Socket的心跳时间信息,这个是Socket底层自动实现的心跳包,不基于协议层实现。默认小于0,不开启心跳检测,如果需要开启,设置 60_000 比较合适,单位毫秒
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.
(继承自 NetworkDoubleBase。)
公共属性代码示例Token
网络类的身份令牌,在hsl协议的模式下会有效,在和设备进行通信的时候是无效的
Network-type identity tokens will be valid in the hsl protocol mode and will not be valid when communicating with the device
(继承自 NetworkBase。)
受保护的属性UseServerActivePush
获取或设置当前的连接是否激活从服务器主动推送的功能
(继承自 NetworkDoubleBase。)
受保护的属性WordLength
一个字单位的数据表示的地址长度,西门子为2,三菱,欧姆龙,modbusTcp就为1,AB PLC无效
The address length represented by one word of data, Siemens is 2, Mitsubishi, Omron, modbusTcp is 1, AB PLC is invalid
(继承自 NetworkDeviceBase。)
Top
方法
  名称说明
受保护的方法AccountCertificate
认证账号,根据已经设置的用户名和密码,进行发送服务器进行账号认证。
Authentication account, according to the user name and password that have been set, sending server for account authentication.
(继承自 NetworkDoubleBase。)
受保护的方法AccountCertificateAsync
认证账号,根据已经设置的用户名和密码,进行发送服务器进行账号认证。
Authentication account, according to the user name and password that have been set, sending server for account authentication.
(继承自 NetworkDoubleBase。)
公共方法静态成员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
受保护的方法CheckReceiveDataComplete
检查当前从网口接收的数据是否是完整的,如果是完整的,则需要返回 True,表示数据接收立即完成,默认返回 True
Check whether the data currently received from the network port is complete, and if it is complete, you need to return True, indicating that the data reception is completed immediately, and the default value is True
(继承自 NetworkDoubleBase。)
受保护的方法CheckRemoteToken
检查当前的头子节信息的令牌是否是正确的,仅用于某些特殊的协议实现
Check whether the token of the current header subsection information is correct, only for some special protocol implementations
(继承自 NetworkBase。)
公共方法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
手动断开与远程服务器的连接,如果当前是长连接模式,那么就会切换到短连接模式
Manually disconnect from the remote server, if it is currently in long connection mode, it will switch to short connection mode
(继承自 NetworkDoubleBase。)
公共方法代码示例ConnectCloseAsync
手动断开与远程服务器的连接,如果当前是长连接模式,那么就会切换到短连接模式
Manually disconnect from the remote server, if it is currently in long connection mode, it will switch to short connection mode
(继承自 NetworkDoubleBase。)
公共方法代码示例ConnectServer
尝试连接远程的服务器,如果连接成功,就切换短连接模式到长连接模式,后面的每次请求都共享一个通道,使得通讯速度更快速
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.
(继承自 NetworkDoubleBase。)
公共方法代码示例ConnectServer(AlienSession)
使用指定的套接字创建异形客户端,在异形客户端的模式下,网络通道需要被动创建。
Use the specified socket to create the alien client. In the alien client mode, the network channel needs to be created passively.
(继承自 NetworkDoubleBase。)
公共方法ConnectServer(MqttClient, String, String)
使用一个MQTT中转服务器来连接设备对象,并进行相关的读取操作
(继承自 NetworkDoubleBase。)
公共方法代码示例ConnectServerAsync
尝试连接远程的服务器,如果连接成功,就切换短连接模式到长连接模式,后面的每次请求都共享一个通道,使得通讯速度更快速
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.
(继承自 NetworkDoubleBase。)
受保护的方法代码示例CreateSocketAndConnect(String, Int32)
创建一个新的socket对象并连接到远程的地址,默认超时时间为10秒钟,需要指定ip地址以及端口号信息
Create a new socket object and connect to the remote address. The default timeout is 10 seconds. You need to specify the IP address and port number.
(继承自 NetworkBase。)
受保护的方法代码示例CreateSocketAndConnect(IPEndPoint, Int32, IPEndPoint)
创建一个新的socket对象并连接到远程的地址,需要指定远程终结点,超时时间(单位是毫秒),如果需要绑定本地的IP或是端口,传入 local对象
To create a new socket object and connect to the remote address, you need to specify the remote endpoint, the timeout period (in milliseconds), if you need to bind the local IP or port, pass in the local object
(继承自 NetworkBase。)
受保护的方法代码示例CreateSocketAndConnect(String, Int32, Int32)
创建一个新的socket对象并连接到远程的地址,需要指定ip地址以及端口号信息,还有超时时间,单位是毫秒
To create a new socket object and connect to a remote address, you need to specify the IP address and port number information, and the timeout period in milliseconds
(继承自 NetworkBase。)
受保护的方法代码示例CreateSocketAndConnectAsync(String, Int32)
创建一个新的socket对象并连接到远程的地址,默认超时时间为10秒钟,需要指定ip地址以及端口号信息
Create a new socket object and connect to the remote address. The default timeout is 10 seconds. You need to specify the IP address and port number.
(继承自 NetworkBase。)
受保护的方法代码示例CreateSocketAndConnectAsync(IPEndPoint, Int32, IPEndPoint)
创建一个新的socket对象并连接到远程的地址,需要指定远程终结点,超时时间(单位是毫秒),如果需要绑定本地的IP或是端口,传入 local对象
To create a new socket object and connect to the remote address, you need to specify the remote endpoint, the timeout period (in milliseconds), if you need to bind the local IP or port, pass in the local object
(继承自 NetworkBase。)
受保护的方法代码示例CreateSocketAndConnectAsync(String, Int32, Int32)
创建一个新的socket对象并连接到远程的地址,需要指定ip地址以及端口号信息,还有超时时间,单位是毫秒
To create a new socket object and connect to a remote address, you need to specify the IP address and port number information, and the timeout period in milliseconds
(继承自 NetworkBase。)
受保护的方法DecideWhetherQAMessage
决定当前的消息是否是应答机制的消息内容,需要在客户端进行重写实现,如果是应答机制,返回 True, 否则返回 False
To determine whether the current message is the message content of the response mechanism, it needs to be rewritten on the client side. If it is the response mechanism, return True, otherwise return False
(继承自 NetworkDoubleBase。)
受保护的方法DeleteFileByName
删除一个指定的文件,如果文件不存在,直接返回 True,如果文件存在则直接删除,删除成功返回 True,如果发生了异常,返回False
Delete a specified file, if the file does not exist, return True directly, if the file exists, delete it directly, if the deletion is successful, return True, if an exception occurs, return False
(继承自 NetworkBase。)
公共方法Dispose
释放当前的资源,如果调用了本方法,那么该对象再使用的时候,需要重新实例化。
Release the current resource. If this method is called, the object needs to be instantiated again when it is used again.
(继承自 NetworkDoubleBase。)
受保护的方法Dispose(Boolean)
释放当前的资源,并自动关闭长连接,如果设置了的话
(继承自 NetworkDoubleBase。)
公共方法Equals (继承自 Object。)
受保护的方法ExtraAfterReadFromCoreServer
和服务器交互完成的时候调用的方法,可以根据读写结果进行一些额外的操作,具体的操作需要根据实际的需求来重写实现
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.
(继承自 NetworkDoubleBase。)
受保护的方法代码示例ExtraOnDisconnect
根据实际的协议选择是否重写本方法,有些协议在断开连接之前,需要发送一些报文来关闭当前的网络通道
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.
(继承自 NetworkDoubleBase。)
受保护的方法代码示例ExtraOnDisconnectAsync
根据实际的协议选择是否重写本方法,有些协议在断开连接之前,需要发送一些报文来关闭当前的网络通道
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.
(继承自 NetworkDoubleBase。)
受保护的方法Finalize (继承自 Object。)
公共方法ForceBool
强制输出一个位到指定的地址,针对PLC类型为 200smart 时有效
Force output one bit to the specified address, valid for PLC type 200smart
受保护的方法GetAvailableSocket
获取本次操作的可用的网络通道,如果是短连接,就重新生成一个新的网络通道,如果是长连接,就复用当前的网络通道。
Obtain the available network channels for this operation. If it is a short connection, a new network channel is regenerated. If it is a long connection, the current network channel is reused.
(继承自 NetworkDoubleBase。)
受保护的方法GetAvailableSocketAsync
获取本次操作的可用的网络通道,如果是短连接,就重新生成一个新的网络通道,如果是长连接,就复用当前的网络通道。
Obtain the available network channels for this operation. If it is a short connection, a new network channel is regenerated. If it is a long connection, the current network channel is reused.
(继承自 NetworkDoubleBase。)
公共方法GetHashCode (继承自 Object。)
受保护的方法GetNewNetMessage
获取一个新的消息对象的方法,需要在继承类里面进行重写
The method to get a new message object needs to be overridden in the inheritance class
(重写 NetworkDoubleBaseGetNewNetMessage.)
公共方法GetPipeSocket
获取当前用于通信的管道信息
Get the current pipe information used for communication
(继承自 NetworkDoubleBase。)
公共方法GetType (继承自 Object。)
受保护的方法GetWordLength
一个字单位的数据表示的地址长度,西门子为2,三菱,欧姆龙,modbusTcp就为1,AB PLC无效
The address length represented by one word of data, Siemens is 2, Mitsubishi, Omron, modbusTcp is 1, AB PLC is invalid
(继承自 NetworkDeviceBase。)
公共方法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
根据实际的协议选择是否重写本方法,有些协议在创建连接之后,需要进行一些初始化的信号握手,才能最终建立网络通道。
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.
(重写 NetworkDoubleBaseInitializationOnConnect(Socket).)
受保护的方法代码示例InitializationOnConnectAsync
根据实际的协议选择是否重写本方法,有些协议在创建连接之后,需要进行一些初始化的信号握手,才能最终建立网络通道。
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.
(重写 NetworkDoubleBaseInitializationOnConnectAsync(Socket).)
公共方法IpAddressPing
对当前设备的IP地址进行PING的操作,返回PING的结果,正常来说,返回Success
PING the IP address of the current device and return the PING result. Normally, it returns Success
(继承自 NetworkDoubleBase。)
受保护的方法MemberwiseClone (继承自 Object。)
公共方法PackCommandWithHeader
对当前的命令进行打包处理,通常是携带命令头内容,标记当前的命令的长度信息,需要进行重写,否则默认不打包
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
(继承自 NetworkDoubleBase。)
公共方法Read(S7AddressData)
读取西门子的地址数据信息,支持任意个数的数据读取
Read Siemens address data information, support any number of data reading
公共方法代码示例Read(String, UInt16)
从PLC读取原始的字节数据,地址格式为I100,Q100,DB20.100,M100,长度参数以字节为单位
Read the original byte data from the PLC, the address format is I100, Q100, DB20.100, M100, length parameters in bytes
(重写 NetworkDeviceBaseRead(String, UInt16).)
公共方法代码示例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文档说明
Read the data content of the Hsl attribute. The attribute is HslDeviceAddressAttribute, please refer to the api documentation for details.
(继承自 NetworkDeviceBase。)
公共方法ReadAsync(S7AddressData)
读取西门子的地址数据信息,支持任意个数的数据读取
Read Siemens address data information, support any number of data reading
公共方法代码示例ReadAsync(String, UInt16)
从PLC读取原始的字节数据,地址格式为I100,Q100,DB20.100,M100,长度参数以字节为单位
Read the original byte data from the PLC, the address format is I100, Q100, DB20.100, M100, length parameters in bytes
(重写 NetworkDeviceBaseReadAsync(String, UInt16).)
公共方法代码示例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文档说明
Asynchronously read the data content of the Hsl attribute. The attribute is HslDeviceAddressAttribute, please refer to the api documentation for details.
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadBool(String)
读取指定地址的bool数据,地址格式为I100,M100,Q100,DB20.100
reads bool data for the specified address in the format I100,M100,Q100,DB20.100
(重写 NetworkDeviceBaseReadBool(String).)
公共方法ReadBool(String, UInt16)
读取指定地址的bool数组,地址格式为I100,M100,Q100,DB20.100
reads bool array data for the specified address in the format I100,M100,Q100,DB20.100
(重写 NetworkDeviceBaseReadBool(String, UInt16).)
公共方法代码示例ReadBoolAsync(String)
读取指定地址的bool数据,地址格式为I100,M100,Q100,DB20.100
reads bool data for the specified address in the format I100,M100,Q100,DB20.100
(重写 NetworkDeviceBaseReadBoolAsync(String).)
公共方法ReadBoolAsync(String, UInt16)
读取指定地址的bool数组,地址格式为I100,M100,Q100,DB20.100
reads bool array data for the specified address in the format I100,M100,Q100,DB20.100
(重写 NetworkDeviceBaseReadBoolAsync(String, UInt16).)
公共方法代码示例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接口,返回一个新的类型的实例对象。
To read a custom data type, you need to inherit from the IDataTransfer interface and return an instance object of a new type.
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadCustomerT(String, T)
读取自定义的数据类型,需要继承自IDataTransfer接口,传入一个实例,对这个实例进行赋值,并返回该实例的对象。
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.
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadCustomerAsyncT(String)
读取自定义的数据类型,需要继承自IDataTransfer接口,返回一个新的类型的实例对象。
To read a custom data type, you need to inherit from the IDataTransfer interface and return an instance object of a new type.
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadCustomerAsyncT(String, T)
读取自定义的数据类型,需要继承自IDataTransfer接口,传入一个实例,对这个实例进行赋值,并返回该实例的对象。
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.
(继承自 NetworkDeviceBase。)
公共方法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)
读取双浮点的数据
Read double floating point data
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadDouble(String, UInt16)
读取双浮点数据的数组
Read double floating point data array
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadDoubleAsync(String)
异步读取双浮点的数据
Asynchronously read double floating point data
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadDoubleAsync(String, UInt16)
异步读取双浮点数据的数组
Asynchronously read double floating point data array
(继承自 NetworkDeviceBase。)
公共方法ReadDTLDataTime
从PLC中读取DTL时间格式的数据
公共方法ReadDTLDataTimeAsync
从PLC中读取DTL时间格式的数据
公共方法代码示例ReadFloat(String)
读取单浮点数据
Read single floating point data
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadFloat(String, UInt16)
读取单浮点精度的数组
Read single floating point array
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadFloatAsync(String)
异步读取单浮点数据
Asynchronously read single floating point data
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadFloatAsync(String, UInt16)
异步读取单浮点精度的数组
Asynchronously read single floating point array
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadFromCoreServer(Byte)
将数据发送到当前的网络通道中,并从网络通道中接收一个INetMessage指定的完整的报文,网络通道将根据GetAvailableSocket方法自动获取,本方法是线程安全的。
Send data to the current network channel and receive a complete message specified by INetMessage from the network channel. The network channel will be automatically obtained according to the GetAvailableSocket method This method is thread-safe.
(继承自 NetworkDoubleBase。)
公共方法ReadFromCoreServer(IEnumerableByte) (继承自 NetworkDoubleBase。)
公共方法代码示例ReadFromCoreServer(Byte, Boolean, Boolean)
将数据发送到当前的网络通道中,并从网络通道中接收一个INetMessage指定的完整的报文,网络通道将根据GetAvailableSocket方法自动获取,本方法是线程安全的。
Send data to the current network channel and receive a complete message specified by INetMessage from the network channel. The network channel will be automatically obtained according to the GetAvailableSocket method This method is thread-safe.
(继承自 NetworkDoubleBase。)
公共方法代码示例ReadFromCoreServer(Socket, Byte, Boolean, Boolean)
将数据报文发送指定的网络通道上,根据当前指定的INetMessage类型,返回一条完整的数据指令
Sends a data message to the specified network channel, and returns a complete data command according to the currently specified INetMessage type
(重写 NetworkDoubleBaseReadFromCoreServer(Socket, Byte, Boolean, Boolean).)
公共方法代码示例ReadFromCoreServerAsync(Byte)
将数据发送到当前的网络通道中,并从网络通道中接收一个INetMessage指定的完整的报文,网络通道将根据GetAvailableSocket方法自动获取,本方法是线程安全的。
Send data to the current network channel and receive a complete message specified by INetMessage from the network channel. The network channel will be automatically obtained according to the GetAvailableSocket method This method is thread-safe.
(继承自 NetworkDoubleBase。)
公共方法ReadFromCoreServerAsync(IEnumerableByte) (继承自 NetworkDoubleBase。)
公共方法代码示例ReadFromCoreServerAsync(Byte, Boolean, Boolean)
将数据发送到当前的网络通道中,并从网络通道中接收一个INetMessage指定的完整的报文,网络通道将根据GetAvailableSocket方法自动获取,本方法是线程安全的。
Send data to the current network channel and receive a complete message specified by INetMessage from the network channel. The network channel will be automatically obtained according to the GetAvailableSocket method This method is thread-safe.
(继承自 NetworkDoubleBase。)
公共方法代码示例ReadFromCoreServerAsync(Socket, Byte, Boolean, Boolean)
将数据报文发送指定的网络通道上,根据当前指定的INetMessage类型,返回一条完整的数据指令
Sends a data message to the specified network channel, and returns a complete data command according to the currently specified INetMessage type
(重写 NetworkDoubleBaseReadFromCoreServerAsync(Socket, Byte, Boolean, Boolean).)
公共方法代码示例ReadInt16(String)
读取16位的有符号的整型数据
Read 16-bit signed integer data
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadInt16(String, UInt16)
读取16位的有符号整型数组
Read 16-bit signed integer array
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadInt16Async(String)
异步读取16位的有符号的整型数据
Asynchronously read 16-bit signed integer data
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadInt16Async(String, UInt16)
异步读取16位的有符号整型数组
Asynchronously read 16-bit signed integer array
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadInt32(String)
读取32位的有符号整型
Read 32-bit signed integer
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadInt32(String, UInt16)
读取32位有符号整型数组
Read 32-bit signed integer array
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadInt32Async(String)
异步读取32位的有符号整型
Asynchronously read 32-bit signed integer
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadInt32Async(String, UInt16)
异步读取32位有符号整型数组
Asynchronously read 32-bit signed integer array
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadInt64(String)
读取64位的有符号整型
Read 64-bit signed integer
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadInt64(String, UInt16)
读取64位的有符号整型数组
Read 64-bit signed integer array
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadInt64Async(String)
异步读取64位的有符号整型
Asynchronously read 64-bit signed integer
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadInt64Async(String, UInt16)
异步读取64位的有符号整型数组
Asynchronously read 64-bit signed integer array
(继承自 NetworkDeviceBase。)
公共方法ReadOrderNumber
从PLC读取订货号信息
Reading order number information from PLC
公共方法ReadOrderNumberAsync
从PLC读取订货号信息
Reading order number information from PLC
受保护的方法ReadStream
读取流中的数据到缓存区,读取的长度需要按照实际的情况来判断
Read the data in the stream to the buffer area. The length of the read needs to be determined according to the actual situation.
(继承自 NetworkBase。)
受保护的方法ReadStreamAsync
读取流中的数据到缓存区,读取的长度需要按照实际的情况来判断
Read the data in the stream to the buffer area. The length of the read needs to be determined according to the actual situation.
(继承自 NetworkBase。)
公共方法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编码
Read string data, default is the most common ASCII encoding
(继承自 NetworkDeviceBase。)
公共方法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)
使用指定的编码,读取字符串数据
Reads string data using the specified encoding
(重写 NetworkDeviceBaseReadString(String, UInt16, 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编码
Asynchronously read string data, default is the most common ASCII encoding
(继承自 NetworkDeviceBase。)
公共方法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)
异步使用指定的编码,读取字符串数据
Asynchronously reads string data using the specified encoding
(重写 NetworkDeviceBaseReadStringAsync(String, UInt16, Encoding).)
公共方法代码示例ReadStructT
读取结构体类型的数据,根据结构体自身的定义,读取原始字节数组,然后解析出实际的结构体数据,结构体需要实现HslStructAttribute特性
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadStructAsyncT
读取结构体类型的数据,根据结构体自身的定义,读取原始字节数组,然后解析出实际的结构体数据,结构体需要实现HslStructAttribute特性
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadUInt16(String)
读取16位的无符号整型
Read 16-bit unsigned integer
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadUInt16(String, UInt16)
读取16位的无符号整型数组
Read 16-bit unsigned integer array
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadUInt16Async(String)
异步读取16位的无符号整型
Asynchronously read 16-bit unsigned integer
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadUInt16Async(String, UInt16)
异步读取16位的无符号整型数组
Asynchronously read 16-bit unsigned integer array
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadUInt32(String)
读取32位的无符号整型
Read 32-bit unsigned integer
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadUInt32(String, UInt16)
读取32位的无符号整型数组
Read 32-bit unsigned integer array
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadUInt32Async(String)
异步读取32位的无符号整型
Asynchronously read 32-bit unsigned integer
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadUInt32Async(String, UInt16)
异步读取32位的无符号整型数组
Asynchronously read 32-bit unsigned integer array
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadUInt64(String)
读取64位的无符号整型
Read 64-bit unsigned integer
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadUInt64(String, UInt16)
读取64位的无符号整型的数组
Read 64-bit unsigned integer array
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadUInt64Async(String)
异步读取64位的无符号整型
Asynchronously read 64-bit unsigned integer
(继承自 NetworkDeviceBase。)
公共方法代码示例ReadUInt64Async(String, UInt16)
异步读取64位的无符号整型的数组
Asynchronously read 64-bit unsigned integer array
(继承自 NetworkDeviceBase。)
公共方法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
受保护的方法Receive(SslStream, Int32, Int32, ActionInt64, Int64)
接收固定长度的字节数组,允许指定超时时间,默认为60秒,当length大于0时,接收固定长度的数据内容,当length小于0时,接收不大于2048长度的随机数据信息
Receiving a fixed-length byte array, allowing a specified timeout time. The default is 60 seconds. When length is greater than 0, fixed-length data content is received. When length is less than 0, random data information of a length not greater than 2048 is received.
(继承自 NetworkBase。)
受保护的方法Receive(Socket, Int32, Int32, ActionInt64, Int64)
接收固定长度的字节数组,允许指定超时时间,默认为60秒,当length大于0时,接收固定长度的数据内容,当length小于0时,接收不大于2048长度的随机数据信息
Receiving a fixed-length byte array, allowing a specified timeout time. The default is 60 seconds. When length is greater than 0, fixed-length data content is received. When length is less than 0, random data information of a length not greater than 2048 is received.
(继承自 NetworkBase。)
受保护的方法Receive(SslStream, Byte, Int32, Int32, Int32, ActionInt64, Int64)
接收固定长度的字节数组,允许指定超时时间,默认为60秒,当length大于0时,接收固定长度的数据内容,当length小于0时,buffer长度的缓存数据
Receiving a fixed-length byte array, allowing a specified timeout time. The default is 60 seconds. When length is greater than 0, fixed-length data content is received. When length is less than 0, random data information of a length not greater than 2048 is received.
(继承自 NetworkBase。)
受保护的方法Receive(Socket, Byte, Int32, Int32, Int32, ActionInt64, Int64)
接收固定长度的字节数组,允许指定超时时间,默认为60秒,当length大于0时,接收固定长度的数据内容,当length小于0时,buffer长度的缓存数据
Receiving a fixed-length byte array, allowing a specified timeout time. The default is 60 seconds. When length is greater than 0, fixed-length data content is received. When length is less than 0, random data information of a length not greater than 2048 is received.
(继承自 NetworkBase。)
受保护的方法ReceiveAndCheckBytes
[自校验] 接收一条完整的同步数据,包含头子节和内容字节,基础的数据,如果结果异常,则结束通讯
[Self-checking] Receive a complete synchronization data, including header subsection and content bytes, basic data, if the result is abnormal, the communication ends
(继承自 NetworkBase。)
受保护的方法ReceiveAndCheckBytesAsync
[自校验] 接收一条完整的同步数据,包含头子节和内容字节,基础的数据,如果结果异常,则结束通讯
[Self-checking] Receive a complete synchronization data, including header subsection and content bytes, basic data, if the result is abnormal, the communication ends
(继承自 NetworkBase。)
受保护的方法ReceiveAsync(SslStream, Int32, Int32, ActionInt64, Int64)
接收固定长度的字节数组,允许指定超时时间,默认为60秒,当length大于0时,接收固定长度的数据内容,当length小于0时,接收不大于2048长度的随机数据信息
Receiving a fixed-length byte array, allowing a specified timeout time. The default is 60 seconds. When length is greater than 0, fixed-length data content is received. When length is less than 0, random data information of a length not greater than 2048 is received.
(继承自 NetworkBase。)
受保护的方法ReceiveAsync(Socket, Int32, Int32, ActionInt64, Int64)
接收固定长度的字节数组,允许指定超时时间,默认为60秒,当length大于0时,接收固定长度的数据内容,当length小于0时,接收不大于2048长度的随机数据信息
Receiving a fixed-length byte array, allowing a specified timeout time. The default is 60 seconds. When length is greater than 0, fixed-length data content is received. When length is less than 0, random data information of a length not greater than 2048 is received.
(继承自 NetworkBase。)
受保护的方法ReceiveAsync(SslStream, Byte, Int32, Int32, Int32, ActionInt64, Int64)
接收固定长度的字节数组,允许指定超时时间,默认为60秒,当length大于0时,接收固定长度的数据内容,当length小于0时,buffer长度的缓存数据
Receiving a fixed-length byte array, allowing a specified timeout time. The default is 60 seconds. When length is greater than 0, fixed-length data content is received. When length is less than 0, random data information of a length not greater than 2048 is received.
(继承自 NetworkBase。)
受保护的方法ReceiveAsync(Socket, Byte, Int32, Int32, Int32, ActionInt64, Int64)
接收固定长度的字节数组,允许指定超时时间,默认为60秒,当length大于0时,接收固定长度的数据内容,当length小于0时,buffer长度的缓存数据
Receiving a fixed-length byte array, allowing a specified timeout time. The default is 60 seconds. When length is greater than 0, fixed-length data content is received. When length is less than 0, random data information of a length not greater than 2048 is received.
(继承自 NetworkBase。)
受保护的方法ReceiveByMessage
接收一条完整的 数据内容,需要指定超时时间,单位为毫秒。
Receive a complete data content, Need to specify a timeout period in milliseconds
(继承自 NetworkBase。)
受保护的方法ReceiveByMessageAsync
接收一条完整的 数据内容,需要指定超时时间,单位为毫秒。
Receive a complete data content, Need to specify a timeout period in milliseconds
(继承自 NetworkBase。)
受保护的方法ReceiveBytesContentFromSocket
[自校验] 从网络中接收一串字节数据,如果结果异常,则结束通讯
[Self-checking] Receive a string of byte data from the network. If the result is abnormal, the communication ends.
(继承自 NetworkBase。)
受保护的方法ReceiveBytesContentFromSocketAsync
[自校验] 从网络中接收一串字节数据,如果结果异常,则结束通讯
[Self-checking] Receive a string of byte data from the network. If the result is abnormal, the communication ends.
(继承自 NetworkBase。)
受保护的方法ReceiveCommandLineFromSocket(Socket, Byte, Int32)
接收一行命令数据,需要自己指定这个结束符,默认超时时间为60秒,也即是60000,单位是毫秒
To receive a line of command data, you need to specify the terminator yourself. The default timeout is 60 seconds, which is 60,000, in milliseconds.
(继承自 NetworkBase。)
受保护的方法ReceiveCommandLineFromSocket(Socket, Byte, Byte, Int32)
接收一行命令数据,需要自己指定这个结束符,默认超时时间为60秒,也即是60000,单位是毫秒
To receive a line of command data, you need to specify the terminator yourself. The default timeout is 60 seconds, which is 60,000, in milliseconds.
(继承自 NetworkBase。)
受保护的方法ReceiveCommandLineFromSocketAsync(Socket, Byte, Int32)
接收一行命令数据,需要自己指定这个结束符,默认超时时间为60秒,也即是60000,单位是毫秒
To receive a line of command data, you need to specify the terminator yourself. The default timeout is 60 seconds, which is 60,000, in milliseconds.
(继承自 NetworkBase。)
受保护的方法ReceiveCommandLineFromSocketAsync(Socket, Byte, Byte, Int32)
接收一行命令数据,需要自己指定这个结束符,默认超时时间为60秒,也即是60000,单位是毫秒
To receive a line of command data, you need to specify the terminator yourself. The default timeout is 60 seconds, which is 60,000, in milliseconds.
(继承自 NetworkBase。)
受保护的方法ReceiveHslMessage
接收一条hsl协议的数据信息,自动解析,解压,解码操作,获取最后的实际的数据,接收结果依次为暗号,用户码,负载数据
Receive a piece of hsl protocol data information, automatically parse, decompress, and decode operations to obtain the last actual data. The result is a opCode, user code, and payload data in order.
(继承自 NetworkBase。)
受保护的方法ReceiveHslMessageAsync
接收一条hsl协议的数据信息,自动解析,解压,解码操作,获取最后的实际的数据,接收结果依次为暗号,用户码,负载数据
Receive a piece of hsl protocol data information, automatically parse, decompress, and decode operations to obtain the last actual data. The result is a opCode, user code, and payload data in order.
(继承自 NetworkBase。)
受保护的方法ReceiveMqttFile
使用MQTT协议从网络接收字节数组,然后写入文件或流中,支持进度报告
Use MQTT protocol to receive byte array from the network, and then write it to file or stream, support progress report
(继承自 NetworkBase。)
受保护的方法ReceiveMqttFileAsync
使用MQTT协议从网络接收字节数组,然后写入文件或流中,支持进度报告
Use MQTT protocol to receive byte array from the network, and then write it to file or stream, support progress report
(继承自 NetworkBase。)
受保护的方法ReceiveMqttMessage(SslStream, Int32, ActionInt64, Int64)
接收一条完整的MQTT协议的报文信息,包含控制码和负载数据
Receive a message of a completed MQTT protocol, including control code and payload data
(继承自 NetworkBase。)
受保护的方法ReceiveMqttMessage(Socket, Int32, ActionInt64, Int64)
接收一条完整的MQTT协议的报文信息,包含控制码和负载数据
Receive a message of a completed MQTT protocol, including control code and payload data
(继承自 NetworkBase。)
受保护的方法ReceiveMqttMessageAsync(SslStream, Int32, ActionInt64, Int64)
接收一条完整的MQTT协议的报文信息,包含控制码和负载数据
Receive a message of a completed MQTT protocol, including control code and payload data
(继承自 NetworkBase。)
受保护的方法ReceiveMqttMessageAsync(Socket, Int32, ActionInt64, Int64)
接收一条完整的MQTT协议的报文信息,包含控制码和负载数据
Receive a message of a completed MQTT protocol, including control code and payload data
(继承自 NetworkBase。)
受保护的方法ReceiveMqttStream
使用MQTT协议从socket接收指定长度的字节数组,然后全部写入到流中,可以指定进度报告
Use the MQTT protocol to receive a byte array of specified length from the socket, and then write all of them to the stream, and you can specify a progress report
(继承自 NetworkBase。)
受保护的方法ReceiveMqttStreamAsync
使用MQTT协议从socket接收指定长度的字节数组,然后全部写入到流中,可以指定进度报告
Use the MQTT protocol to receive a byte array of specified length from the socket, and then write all of them to the stream, and you can specify a progress report
(继承自 NetworkBase。)
受保护的方法ReceiveRedisCommand
从网络接收一条完整的redis报文的消息
Receive a complete redis message from the network
(继承自 NetworkBase。)
受保护的方法ReceiveRedisCommandAsync
从网络接收一条完整的redis报文的消息
Receive a complete redis message from the network
(继承自 NetworkBase。)
受保护的方法ReceiveRedisCommandString
接收一行基于redis协议的字符串的信息,需要指定固定的长度
Receive a line of information based on the redis protocol string, you need to specify a fixed length
(继承自 NetworkBase。)
受保护的方法ReceiveRedisCommandStringAsync
接收一行基于redis协议的字符串的信息,需要指定固定的长度
Receive a line of information based on the redis protocol string, you need to specify a fixed length
(继承自 NetworkBase。)
受保护的方法ReceiveStringArrayContentFromSocket
[自校验] 从网络中接收一个字符串数组,如果结果异常,则结束通讯
[Self-check] Receive an array of strings from the network. If the result is abnormal, the communication ends.
(继承自 NetworkBase。)
受保护的方法ReceiveStringArrayContentFromSocketAsync
[自校验] 从网络中接收一个字符串数组,如果结果异常,则结束通讯
[Self-check] Receive an array of strings from the network. If the result is abnormal, the communication ends.
(继承自 NetworkBase。)
受保护的方法ReceiveStringContentFromSocket
[自校验] 从网络中接收一个字符串数据,如果结果异常,则结束通讯
[Self-checking] Receive a string of data from the network. If the result is abnormal, the communication ends.
(继承自 NetworkBase。)
受保护的方法ReceiveStringContentFromSocketAsync
[自校验] 从网络中接收一个字符串数据,如果结果异常,则结束通讯
[Self-checking] Receive a string of data from the network. If the result is abnormal, the communication ends.
(继承自 NetworkBase。)
受保护的方法ReceiveVigorMessage
从Socket接收一条VigorPLC的消息数据信息,指定套接字对象及超时时间
Receive a message data information of VigorPLC from Socket, specify socket object and timeout time
(继承自 NetworkBase。)
受保护的方法ReceiveVigorMessageAsync
从Socket接收一条VigorPLC的消息数据信息,指定套接字对象及超时时间
Receive a message data information of VigorPLC from Socket, specify socket object and timeout time
(继承自 NetworkBase。)
受保护的方法ReceiveWebSocketPayload(SslStream)
从socket接收一条完整的websocket数据,返回WebSocketMessage的数据信息
Receive a complete websocket data from the socket, return the data information of the WebSocketMessage
(继承自 NetworkBase。)
受保护的方法ReceiveWebSocketPayload(Socket)
从socket接收一条完整的websocket数据,返回WebSocketMessage的数据信息
Receive a complete websocket data from the socket, return the data information of the WebSocketMessage
(继承自 NetworkBase。)
受保护的方法ReceiveWebSocketPayloadAsync(SslStream)
从socket接收一条完整的websocket数据,返回WebSocketMessage的数据信息
Receive a complete websocket data from the socket, return the data information of the WebSocketMessage
(继承自 NetworkBase。)
受保护的方法ReceiveWebSocketPayloadAsync(Socket)
从socket接收一条完整的websocket数据,返回WebSocketMessage的数据信息
Receive a complete websocket data from the socket, return the data information of the WebSocketMessage
(继承自 NetworkBase。)
受保护的方法Send(SslStream, Byte)
发送消息给套接字,直到完成的时候返回,经过测试,本方法是线程安全的。
Send a message to the socket until it returns when completed. After testing, this method is thread-safe.
(继承自 NetworkBase。)
受保护的方法Send(Socket, Byte)
发送消息给套接字,直到完成的时候返回,经过测试,本方法是线程安全的。
Send a message to the socket until it returns when completed. After testing, this method is thread-safe.
(继承自 NetworkBase。)
受保护的方法Send(SslStream, Byte, Int32, Int32)
发送消息给套接字,直到完成的时候返回,经过测试,本方法是线程安全的。
Send a message to the socket until it returns when completed. After testing, this method is thread-safe.
(继承自 NetworkBase。)
受保护的方法Send(Socket, Byte, Int32, Int32)
发送消息给套接字,直到完成的时候返回,经过测试,本方法是线程安全的。
Send a message to the socket until it returns when completed. After testing, this method is thread-safe.
(继承自 NetworkBase。)
受保护的方法SendAccountAndCheckReceive
[自校验] 直接发送字符串数组并确认对方接收完成数据,如果结果异常,则结束通讯
[Self-check] Send string array directly and confirm that the other party has received the completed data. If the result is abnormal, the communication ends.
(继承自 NetworkBase。)
受保护的方法SendAccountAndCheckReceiveAsync
[自校验] 直接发送字符串数组并确认对方接收完成数据,如果结果异常,则结束通讯
[Self-check] Send string array directly and confirm that the other party has received the completed data. If the result is abnormal, the communication ends.
(继承自 NetworkBase。)
受保护的方法SendAsync(SslStream, Byte)
发送消息给套接字,直到完成的时候返回,经过测试,本方法是线程安全的。
Send a message to the socket until it returns when completed. After testing, this method is thread-safe.
(继承自 NetworkBase。)
受保护的方法SendAsync(Socket, Byte)
发送消息给套接字,直到完成的时候返回,经过测试,本方法是线程安全的。
Send a message to the socket until it returns when completed. After testing, this method is thread-safe.
(继承自 NetworkBase。)
受保护的方法SendAsync(SslStream, Byte, Int32, Int32)
发送消息给套接字,直到完成的时候返回,经过测试,本方法是线程安全的。
Send a message to the socket until it returns when completed. After testing, this method is thread-safe.
(继承自 NetworkBase。)
受保护的方法SendAsync(Socket, Byte, Int32, Int32)
发送消息给套接字,直到完成的时候返回,经过测试,本方法是线程安全的。
Send a message to the socket until it returns when completed. After testing, this method is thread-safe.
(继承自 NetworkBase。)
受保护的方法SendBaseAndCheckReceive
[自校验] 发送字节数据并确认对方接收完成数据,如果结果异常,则结束通讯
[Self-check] Send the byte data and confirm that the other party has received the completed data. If the result is abnormal, the communication ends.
(继承自 NetworkBase。)
受保护的方法SendBaseAndCheckReceiveAsync
[自校验] 发送字节数据并确认对方接收完成数据,如果结果异常,则结束通讯
[Self-check] Send the byte data and confirm that the other party has received the completed data. If the result is abnormal, the communication ends.
(继承自 NetworkBase。)
受保护的方法SendBytesAndCheckReceive
[自校验] 发送字节数据并确认对方接收完成数据,如果结果异常,则结束通讯
[Self-check] Send the byte data and confirm that the other party has received the completed data. If the result is abnormal, the communication ends.
(继承自 NetworkBase。)
受保护的方法SendBytesAndCheckReceiveAsync
[自校验] 发送字节数据并确认对方接收完成数据,如果结果异常,则结束通讯
[Self-check] Send the byte data and confirm that the other party has received the completed data. If the result is abnormal, the communication ends.
(继承自 NetworkBase。)
受保护的方法SendMqttFile(Socket, Stream, String, String, ActionInt64, Int64, AesCryptography, HslCancelToken)
使用MQTT协议将一个数据流发送到网络上去,需要保存的文件名,可选指定文件描述信息,进度报告
Use the MQTT protocol to send a data stream to the network, the file name that needs to be saved, optional file description information, progress report
(继承自 NetworkBase。)
受保护的方法SendMqttFile(Socket, String, String, String, ActionInt64, Int64, AesCryptography, HslCancelToken)
使用MQTT协议将一个文件发送到网络上去,需要指定文件名,保存的文件名,可选指定文件描述信息,进度报告
To send a file to the network using the MQTT protocol, you need to specify the file name, the saved file name, optionally specify the file description information, and the progress report
(继承自 NetworkBase。)
受保护的方法SendMqttFileAsync(Socket, Stream, String, String, ActionInt64, Int64, AesCryptography, HslCancelToken)
使用MQTT协议将一个数据流发送到网络上去,需要保存的文件名,可选指定文件描述信息,进度报告
Use the MQTT protocol to send a data stream to the network, the file name that needs to be saved, optional file description information, progress report
(继承自 NetworkBase。)
受保护的方法SendMqttFileAsync(Socket, String, String, String, ActionInt64, Int64, AesCryptography, HslCancelToken)
使用MQTT协议将一个文件发送到网络上去,需要指定文件名,保存的文件名,可选指定文件描述信息,进度报告
To send a file to the network using the MQTT protocol, you need to specify the file name, the saved file name, optionally specify the file description information, and the progress report
(继承自 NetworkBase。)
受保护的方法SendMqttStream
使用MQTT协议将流中的数据读取到字节数组,然后都写入到socket里面,可以指定进度报告,主要用于将文件发送到网络。
Use the MQTT protocol to read the data in the stream into a byte array, and then write them all into the socket. You can specify a progress report, which is mainly used to send files to the network.
(继承自 NetworkBase。)
受保护的方法SendMqttStreamAsync
使用MQTT协议将流中的数据读取到字节数组,然后都写入到socket里面,可以指定进度报告,主要用于将文件发送到网络。
Use the MQTT protocol to read the data in the stream into a byte array, and then write them all into the socket. You can specify a progress report, which is mainly used to send files to the network.
(继承自 NetworkBase。)
受保护的方法SendStreamToSocket
发送一个流的所有数据到指定的网络套接字,需要指定发送的数据长度,支持按照百分比的进度报告
Send all the data of a stream to the specified network socket. You need to specify the length of the data to be sent. It supports the progress report in percentage.
(继承自 NetworkBase。)
受保护的方法SendStreamToSocketAsync
发送一个流的所有数据到指定的网络套接字,需要指定发送的数据长度,支持按照百分比的进度报告
Send all the data of a stream to the specified network socket. You need to specify the length of the data to be sent. It supports the progress report in percentage.
(继承自 NetworkBase。)
受保护的方法SendStringAndCheckReceive(Socket, Int32, String)
[自校验] 直接发送字符串数据并确认对方接收完成数据,如果结果异常,则结束通讯
[Self-checking] Send string data directly and confirm that the other party has received the completed data. If the result is abnormal, the communication ends.
(继承自 NetworkBase。)
受保护的方法SendStringAndCheckReceive(Socket, Int32, String)
[自校验] 直接发送字符串数组并确认对方接收完成数据,如果结果异常,则结束通讯
[Self-check] Send string array directly and confirm that the other party has received the completed data. If the result is abnormal, the communication ends.
(继承自 NetworkBase。)
受保护的方法SendStringAndCheckReceiveAsync(Socket, Int32, String)
[自校验] 直接发送字符串数据并确认对方接收完成数据,如果结果异常,则结束通讯
[Self-checking] Send string data directly and confirm that the other party has received the completed data. If the result is abnormal, the communication ends.
(继承自 NetworkBase。)
受保护的方法SendStringAndCheckReceiveAsync(Socket, Int32, String)
[自校验] 直接发送字符串数组并确认对方接收完成数据,如果结果异常,则结束通讯
[Self-check] Send string array directly and confirm that the other party has received the completed data. If the result is abnormal, the communication ends.
(继承自 NetworkBase。)
公共方法SetLoginAccount
设置当前的登录的账户名和密码信息,并启用账户验证的功能,账户名为空时设置不生效
Set the current login account name and password information, and enable the account verification function. The account name setting will not take effect when it is empty
(继承自 NetworkDoubleBase。)
公共方法代码示例SetPersistentConnection
在读取数据之前可以调用本方法将客户端设置为长连接模式,相当于跳过了ConnectServer的结果验证,对异形客户端无效,当第一次进行通信时再进行创建连接请求。
Before reading the data, you can call this method to set the client to the long connection mode, which is equivalent to skipping the result verification of ConnectServer, and it is invalid for the alien client. When the first communication is performed, the connection creation request is performed.
(继承自 NetworkDoubleBase。)
公共方法SetPipeSocket
设置一个新的网络管道,一般来说不需要调用本方法,当多个网口设备共用一个网络连接时才需要使用本方法进行设置共享的管道。
To set up a new network channel, generally speaking, you do not need to call this method. This method is only needed to set up a shared channel when multiple network port devices share a network connection.
(继承自 NetworkDoubleBase。)
公共方法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 (重写 NetworkDeviceBaseToString.)
公共方法UnpackResponseContent
根据对方返回的报文命令,对命令进行基本的拆包,例如各种Modbus协议拆包为统一的核心报文,还支持对报文的验证
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
(继承自 NetworkDoubleBase。)
公共方法Wait(String, Boolean, Int32, Int32)
等待指定地址的Boolean值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。
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.
(继承自 NetworkDeviceBase。)
公共方法Wait(String, Int16, Int32, Int32)
等待指定地址的Int16值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。
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.
(继承自 NetworkDeviceBase。)
公共方法Wait(String, Int32, Int32, Int32)
等待指定地址的Int32值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。
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.
(继承自 NetworkDeviceBase。)
公共方法Wait(String, Int64, Int32, Int32)
等待指定地址的Int64值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。
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.
(继承自 NetworkDeviceBase。)
公共方法Wait(String, UInt16, Int32, Int32)
等待指定地址的UInt16值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。
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.
(继承自 NetworkDeviceBase。)
公共方法Wait(String, UInt32, Int32, Int32)
等待指定地址的UInt32值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。
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.
(继承自 NetworkDeviceBase。)
公共方法Wait(String, UInt64, Int32, Int32)
等待指定地址的UInt64值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。
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.
(继承自 NetworkDeviceBase。)
公共方法WaitAsync(String, Boolean, Int32, Int32)
等待指定地址的Boolean值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。
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.
(继承自 NetworkDeviceBase。)
公共方法WaitAsync(String, Int16, Int32, Int32)
等待指定地址的Int16值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。
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.
(继承自 NetworkDeviceBase。)
公共方法WaitAsync(String, Int32, Int32, Int32)
等待指定地址的Int32值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。
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.
(继承自 NetworkDeviceBase。)
公共方法WaitAsync(String, Int64, Int32, Int32)
等待指定地址的Int64值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。
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.
(继承自 NetworkDeviceBase。)
公共方法WaitAsync(String, UInt16, Int32, Int32)
等待指定地址的UInt16值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。
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.
(继承自 NetworkDeviceBase。)
公共方法WaitAsync(String, UInt32, Int32, Int32)
等待指定地址的UInt32值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。
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.
(继承自 NetworkDeviceBase。)
公共方法WaitAsync(String, UInt64, Int32, Int32)
等待指定地址的UInt64值为指定的值,可以指定刷新数据的频率,等待的超时时间,如果超时时间为-1的话,则是无期限等待。
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.
(继承自 NetworkDeviceBase。)
公共方法代码示例Write(String, Double)
写入double数据,返回是否成功
Write double data, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例Write(String, Double)
写入double数组,返回是否成功
Write double array, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例Write(String, Int16)
写入short数据,返回是否成功
Write short data, returns whether success
(继承自 NetworkDeviceBase。)
公共方法代码示例Write(String, Int16)
写入short数组,返回是否成功
Write short array, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例Write(String, Int32)
写入int数据,返回是否成功
Write int data, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例Write(String, Int32)
写入int[]数组,返回是否成功
Write int array, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例Write(String, Int64)
写入long数据,返回是否成功
Write long data, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例Write(String, Int64)
写入long数组,返回是否成功
Write long array, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例Write(String, Single)
写入float数据,返回是否成功
Write float data, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例Write(String, Single)
写入float数组,返回是否成功
Write float array, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例Write(String, String)
写入字符串信息,编码为ASCII
Write string information, encoded as ASCII
(继承自 NetworkDeviceBase。)
公共方法代码示例Write(String, UInt16)
写入ushort数据,返回是否成功
Write ushort data, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例Write(String, UInt16)
写入ushort数组,返回是否成功
Write ushort array, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例Write(String, UInt32)
写入uint数据,返回是否成功
Write uint data, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例Write(String, UInt32)
写入uint[]数组,返回是否成功
Write uint array, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例Write(String, UInt64)
写入ulong数据,返回是否成功
Write ulong data, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例Write(String, UInt64)
写入ulong数组,返回是否成功
Write ulong array, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例Write(String, Boolean)
写入PLC的一个位,例如"M100.6","I100.7","Q100.0","DB20.100.0",如果只写了"M100"默认为"M100.0"
Write a bit of PLC, for example "M100.6", "I100.7", "Q100.0", "DB20.100.0", if only write "M100" defaults to "M100.0"
(重写 NetworkDeviceBaseWrite(String, Boolean).)
公共方法Write(String, Boolean)
[警告] 向PLC中写入bool数组,比如你写入M100,那么data[0]对应M100.0,写入的长度应该小于1600位
[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
(重写 NetworkDeviceBaseWrite(String, Boolean).)
公共方法Write(String, Byte)
向PLC中写入byte数据,返回值说明
Write byte data to the PLC, return value description
公共方法代码示例Write(String, Byte)
将数据写入到PLC数据,地址格式为I100,Q100,DB20.100,M100,以字节为单位
Writes data to the PLC data, in the address format I100,Q100,DB20.100,M100, in bytes
(重写 NetworkDeviceBaseWrite(String, Byte).)
公共方法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
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.
(继承自 NetworkDeviceBase。)
公共方法代码示例Write(String, String, Encoding)
写入字符串信息,需要指定的编码信息
Write string information, need to specify the encoding information
(重写 NetworkDeviceBaseWrite(String, String, Encoding).)
公共方法代码示例Write(String, String, Int32, Encoding)
写入指定长度的字符串信息,如果超出,就截断字符串,如果长度不足,那就补0操作,编码为指定的编码信息
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
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteT(T)
写入支持Hsl特性的数据,返回是否写入成功,该特性为HslDeviceAddressAttribute,详细参考api文档说明
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.
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteAsync(String, Double)
异步写入double数据,返回是否成功
Asynchronously write double data, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteAsync(String, Double)
异步写入double数组,返回是否成功
Asynchronously write double array, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteAsync(String, Int16)
异步写入short数据,返回是否成功
Asynchronously write short data, returns whether success
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteAsync(String, Int16)
异步写入short数组,返回是否成功
Asynchronously write short array, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteAsync(String, Int32)
异步写入int数据,返回是否成功
Asynchronously write int data, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteAsync(String, Int32)
异步写入int[]数组,返回是否成功
Asynchronously write int array, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteAsync(String, Int64)
异步写入long数据,返回是否成功
Asynchronously write long data, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteAsync(String, Int64)
异步写入long数组,返回是否成功
Asynchronously write long array, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteAsync(String, Single)
异步写入float数据,返回是否成功
Asynchronously write float data, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteAsync(String, Single)
异步写入float数组,返回是否成功
Asynchronously write float array, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteAsync(String, String)
异步写入字符串信息,编码为ASCII
Asynchronously write string information, encoded as ASCII
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteAsync(String, UInt16)
异步写入ushort数据,返回是否成功
Asynchronously write ushort data, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteAsync(String, UInt16)
异步写入ushort数组,返回是否成功
Asynchronously write ushort array, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteAsync(String, UInt32)
异步写入uint数据,返回是否成功
Asynchronously write uint data, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteAsync(String, UInt32)
异步写入uint[]数组,返回是否成功
Asynchronously write uint array, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteAsync(String, UInt64)
异步写入ulong数据,返回是否成功
Asynchronously write ulong data, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteAsync(String, UInt64)
异步写入ulong数组,返回是否成功
Asynchronously write ulong array, return whether the write was successful
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteAsync(String, Boolean)
写入PLC的一个位,例如"M100.6","I100.7","Q100.0","DB20.100.0",如果只写了"M100"默认为"M100.0"
Write a bit of PLC, for example "M100.6", "I100.7", "Q100.0", "DB20.100.0", if only write "M100" defaults to "M100.0"
(重写 NetworkDeviceBaseWriteAsync(String, Boolean).)
公共方法WriteAsync(String, Boolean)
[警告] 向PLC中写入bool数组,比如你写入M100,那么data[0]对应M100.0,写入的长度应该小于1600位
[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
(重写 NetworkDeviceBaseWriteAsync(String, Boolean).)
公共方法WriteAsync(String, Byte)
向PLC中写入byte数据,返回值说明
Write byte data to the PLC, return value description
公共方法代码示例WriteAsync(String, Byte)
将数据写入到PLC数据,地址格式为I100,Q100,DB20.100,M100,以字节为单位
Writes data to the PLC data, in the address format I100,Q100,DB20.100,M100, in bytes
(重写 NetworkDeviceBaseWriteAsync(String, Byte).)
公共方法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
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.
(继承自 NetworkDeviceBase。)
公共方法WriteAsync(String, String, Encoding)
将指定的字符串写入到西门子PLC里面去,将自动添加字符串长度信息,方便PLC识别字符串的内容。
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.
(重写 NetworkDeviceBaseWriteAsync(String, String, Encoding).)
公共方法WriteAsync(String, String, Int32, Encoding)
异步写入指定长度的字符串信息,如果超出,就截断字符串,如果长度不足,那就补0操作,编码为指定的编码信息
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
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteAsyncT(T)
异步写入支持Hsl特性的数据,返回是否写入成功,该特性为HslDeviceAddressAttribute,详细参考api文档说明
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.
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteCustomerT
写入自定义类型的数据,该类型必须继承自IDataTransfer接口
Write data of a custom type, which must inherit from the IDataTransfer interface
(继承自 NetworkDeviceBase。)
公共方法代码示例WriteCustomerAsyncT
写入自定义类型的数据,该类型必须继承自IDataTransfer接口
Write data of a custom type, which must inherit from the IDataTransfer interface
(继承自 NetworkDeviceBase。)
公共方法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格式的时间数据信息
受保护的方法WriteStream
将缓冲区的数据写入到流里面去
Write the buffer data to the stream
(继承自 NetworkBase。)
受保护的方法WriteStreamAsync
将缓冲区的数据写入到流里面去
Write the buffer data to the stream
(继承自 NetworkBase。)
受保护的方法WriteStreamFromSocket
从套接字中接收所有的数据然后写入到指定的流当中去,需要指定数据的长度,支持按照百分比进行进度报告
Receives all data from the socket and writes it to the specified stream. The length of the data needs to be specified, and progress reporting is supported in percentage.
(继承自 NetworkBase。)
受保护的方法WriteStreamFromSocketAsync
从套接字中接收所有的数据然后写入到指定的流当中去,需要指定数据的长度,支持按照百分比进行进度报告
Receives all data from the socket and writes it to the specified stream. The length of the data needs to be specified, and progress reporting is supported in percentage.
(继承自 NetworkBase。)
公共方法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.
Top
字段
  名称说明
受保护的字段fileCacheSize
文件传输的时候的缓存大小,直接影响传输的速度,值越大,传输速度越快,越占内存,默认为100K大小
The size of the cache during file transfer directly affects the speed of the transfer. The larger the value, the faster the transfer speed and the more memory it takes. The default size is 100K.
(继承自 NetworkBase。)
受保护的字段isPersistentConn
是否是长连接的状态
Whether it is a long connection state
(继承自 NetworkDoubleBase。)
受保护的字段isUseAccountCertificate
是否使用账号登录,这个账户登录的功能是HSL组件创建的服务器特有的功能。
Whether to log in using an account. The function of this account login is a server-specific function created by the HSL component.
(继承自 NetworkDoubleBase。)
受保护的字段LogMsgFormatBinary
设置日志记录报文是否二进制,如果为False,那就使用ASCII码
Set whether the log message is binary, if it is False, then use ASCII code
(继承自 NetworkDoubleBase。)
受保护的字段pipeSocket
当前的网络的管道信息
(继承自 NetworkDoubleBase。)
Top
扩展方法
  名称说明
公共扩展器方法ToJsonString
获取当前对象的JSON格式表示的字符串。
Gets the string represented by the JSON format of the current object.
(由 HslExtension 定义。)
Top
备注
暂时不支持bool[]的批量写入操作,请使用 Write(string, byte[]) 替换。
重要事项 重要事项
对于200smartPLC的V区,就是DB1.X,例如,V100=DB1.100,当然了你也可以输入V100

如果读取PLC的字符串string数据,可以使用 ReadString(String)
示例
重要事项 重要事项
对于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( );
假设起始地址为M100,M100存储了温度,100.6℃值为1006,M102存储了压力,1.23Mpa值为123,M104,M105,M106,M107存储了产量计数,读取如下:
Read示例
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
}
以下是读取不同类型数据的示例
Read示例
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组成的双精度值
Write示例
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值
以下是一个复杂的读取示例
Read示例
// 实例化
SiemensS7Net siemens = new SiemensS7Net( SiemensPLCS.S1200, " 192.168.1.110" );
siemens.SetPersistentConnection( ); // 设置长连接

// 假设我要的数据在 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( );  // 关闭连接
在西门子PLC,字符串分为普通的string,和WString类型,前者为单字节的类型,后者为双字节的字符串类型
一个字符串除了本身的数据信息,还有字符串的长度信息,比如字符串 "12345",比如在PLC的地址 DB1.0 存储的字节是 FE 05 31 32 33 34 35, 第一个字节是最大长度,第二个字节是当前长度,后面的才是字符串的数据信息。
字符串读写示例
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", "国产之光" );   // 对应的写入
参见