SM828H-B-1 GPRS数据采集器使用手册

需积分: 9 1 下载量 9 浏览量 更新于2024-07-20 收藏 2.03MB PDF 举报
"GRPS 远程数据采集器12AD_8DI_4DO" GRPS(通常应为GPRS,General Packet Radio Service)远程数据采集器是一种用于远程监控和数据传输的设备,如SM828H-B-1型号。这种采集器集成了12个模拟输入(AD),8个数字输入(DI)和4个数字输出(DO),适用于各种工业环境中的信号采集和控制。其核心功能是通过GPRS通信技术将现场的传感器数据上传到远程服务器,实现远程监控和数据分析。 1.1 产品简介 SM828H-B-1 GPRS采集器是一款由嘉兴市松茂电子有限公司设计制造的智能设备,主要用于远程监测和控制。它支持多种类型的信号输入和输出,适应性强,可广泛应用于电力、环保、石油、化工等领域的数据采集系统。 1.2 产品性能 该采集器具有稳定可靠的通信能力,能够抵抗恶劣环境影响,确保数据传输的准确性和实时性。同时,它具备强大的数据处理和存储功能,可以记录和存储大量的现场数据,便于后期分析。 1.3 主要参数 - 模拟输入(AD):12通道,用于接收连续变化的模拟信号 - 数字输入(DI):8通道,用于检测开关状态等数字信号 - 数字输出(DO):4通道,可用于控制设备的开/关状态 - 通信方式:GPRS,支持TCP/IP协议,能接入GSM网络进行数据传输 - 接口:包括RS232和RS485,兼容多种仪表和设备 2.1 实物图与指示灯功能 采集器实物图展示了其外观和各指示灯位置,指示灯用于显示设备的工作状态,如电源、网络连接、数据传输等。 2.2 产品选型与接线图 选型指南帮助用户根据具体需求选择合适的产品型号,接线图详细指导用户正确连接采集器与现场设备。 2.3 端口介绍与仪表接线示意图 端口说明解释了每个接口的作用,接线示意图提供直观的连接方法,确保正确连接传感器和控制器。 2.4 操作面板 操作面板包含必要的控制按钮和显示屏,用户可以通过这些界面进行设备设置和查看实时数据。 3. 配置软件功能与操作步骤 - 3.1 通讯连接:软件提供与采集器建立连接的功能,确保数据传输畅通。 - 3.2 基本参数设置:包括设置设备ID、波特率、校验位等通信参数。 - 3.3 GPRS通讯方式:配置GPRS网络参数,如APN、用户名和密码,确保设备接入网络。 - 3.4 AD/DI/DO输入输出参数设置:分别配置各通道的参数,如量程、触发条件等。 - 3.4.1 AD/DI通道数据显示:实时显示通道的数值。 - 3.4.2 AD/DI参数配置:调整通道的采样频率、分辨率等。 - 3.4.3 OUT继电器输出参数设置:设定继电器的触发条件和工作模式。 - 3.4.4 RS232与RS485接口配置:自定义串行接口的通信参数。 - 3.4.5 设置GSM报警短信内容:设定异常情况下的短信通知。 - 3.4.6 SMS报警短信设置:分步配置报警短信的发送规则和内容。 - 3.5 数据记录:设置数据记录间隔和存储策略,便于历史数据分析。 4. 服务与保修 嘉兴市松茂电子有限公司提供了详细的售后服务和保修政策,用户在遇到问题时可通过多种方式联系技术支持获取帮助。 总结,SM828H-B-1 GPRS采集器是一款集成度高、功能全面的数据采集设备,结合配置软件,能有效地实现远程监控和自动化管理。用户在使用前需详细阅读使用说明书,按照操作步骤进行配置,以确保设备正常运行和数据的准确无误。

Defines the PatchGAN discriminator with the specified arguments. class NLayerDiscriminator(nn.Module): def init(self, input_nc=3, ndf=64, n_layers=3, norm_layer=nn.BatchNorm2d, use_sigmoid=False, use_parallel=True): super(NLayerDiscriminator, self).init() self.use_parallel = use_parallel if type(norm_layer) == functools.partial: use_bias = norm_layer.func == nn.InstanceNorm2d else: use_bias = norm_layer == nn.InstanceNorm2d self.conv1 = nn.Conv2d(input_nc, ndf, kernel_size=3, padding=1) self.conv_offset1 = nn.Conv2d(ndf, 18, kernel_size=3, stride=1, padding=1) init_offset1 = torch.Tensor(np.zeros([18, ndf, 3, 3])) self.conv_offset1.weight = torch.nn.Parameter(init_offset1) # 初始化为0 self.conv_mask1 = nn.Conv2d(ndf, 9, kernel_size=3, stride=1, padding=1) init_mask1 = torch.Tensor(np.zeros([9, ndf, 3, 3]) + np.array([0.5])) self.conv_mask1.weight = torch.nn.Parameter(init_mask1) # 初始化为0.5 kw = 4 padw = int(np.ceil((kw-1)/2)) nf_mult = 1 for n in range(1, n_layers): nf_mult_prev = nf_mult nf_mult = min(2n, 8) self.sequence2 = [ nn.Conv2d(ndf * nf_mult_prev, ndf * nf_mult, kernel_size=kw, stride=2, padding=padw, bias=use_bias), norm_layer(ndf * nf_mult), nn.LeakyReLU(0.2, True) ] nf_mult_prev = nf_mult nf_mult = min(2n_layers, 8) self.sequence2 += [ nn.Conv2d(ndf * nf_mult_prev, ndf * nf_mult, kernel_size=kw, stride=1, padding=padw, bias=use_bias), norm_layer(ndf * nf_mult), nn.LeakyReLU(0.2, True) ] self.sequence2 += [nn.Conv2d(ndf * nf_mult, 1, kernel_size=kw, stride=1, padding=padw)] if use_sigmoid: self.sequence2 += [nn.Sigmoid()] def forward(self, input): input = self.conv1(input) offset1 = self.conv_offset1(input) mask1 = torch.sigmoid(self.conv_mask1(input)) sequence1 = [ torchvision.ops.deform_conv2d(input=input, offset=offset1, weight=self.conv1.weight, mask=mask1, padding=(1, 1)) 上述代码中出现错误:RuntimeError: Expected weight_c.size(1) * n_weight_grps == input_c.size(1) to be true, but got false. (Could this error message be improved? If so, please report an enhancement request to PyTorch.),请问如何解决,给出修改后的代码

2023-05-30 上传

class NLayerDiscriminator(nn.Module): def init(self, input_nc=3, ndf=64, n_layers=3, norm_layer=nn.BatchNorm2d, use_sigmoid=False, use_parallel=True): super(NLayerDiscriminator, self).init() self.use_parallel = use_parallel if type(norm_layer) == functools.partial: use_bias = norm_layer.func == nn.InstanceNorm2d else: use_bias = norm_layer == nn.InstanceNorm2d self.conv1 = nn.Conv2d(input_nc, ndf, kernel_size=3, padding=1) self.conv_offset1 = nn.Conv2d(ndf, 18, kernel_size=3, stride=1, padding=1) init_offset1 = torch.Tensor(np.zeros([18, ndf, 3, 3])) self.conv_offset1.weight = torch.nn.Parameter(init_offset1) # 初始化为0 self.conv_mask1 = nn.Conv2d(ndf, 9, kernel_size=3, stride=1, padding=1) init_mask1 = torch.Tensor(np.zeros([9, ndf, 3, 3]) + np.array([0.5])) self.conv_mask1.weight = torch.nn.Parameter(init_mask1) # 初始化为0.5 kw = 4 padw = int(np.ceil((kw-1)/2)) nf_mult = 1 for n in range(1, n_layers): nf_mult_prev = nf_mult nf_mult = min(2n, 8) self.sequence2 = [ nn.Conv2d(ndf * nf_mult_prev, ndf * nf_mult, kernel_size=kw, stride=2, padding=padw, bias=use_bias), norm_layer(ndf * nf_mult), nn.LeakyReLU(0.2, True) ] nf_mult_prev = nf_mult nf_mult = min(2n_layers, 8) self.sequence2 += [ nn.Conv2d(ndf * nf_mult_prev, ndf * nf_mult, kernel_size=kw, stride=1, padding=padw, bias=use_bias), norm_layer(ndf * nf_mult), nn.LeakyReLU(0.2, True) ] self.sequence2 += [nn.Conv2d(ndf * nf_mult, 1, kernel_size=kw, stride=1, padding=padw)] if use_sigmoid: self.sequence2 += [nn.Sigmoid()] def forward(self, input): input = self.conv1(input) offset1 = self.conv_offset1(input) mask1 = torch.sigmoid(self.conv_mask1(input)) sequence1 = [ torchvision.ops.deform_conv2d(input=input, offset=offset1, weight=self.conv1.weight, mask=mask1, padding=(1, 1)) ] sequence2 = sequence1 + self.sequence2 self.model = nn.Sequential(*sequence2) nn.LeakyReLU(0.2, True) return self.model(input),上述代码中:出现错误:torchvision.ops.deform_conv2d(input=input, offset=offset1,RuntimeError: Expected weight_c.size(1) * n_weight_grps == input_c.size(1) to be true, but got false. (Could this error message be improved? If so, please report an enhancement request to PyTorch.)

2023-05-30 上传