Modbus Configurator/zh-hans

From SoftMC-Wiki
Jump to: navigation, search
语言: English  • 中文(简体)‎

Modbus配置器

Modbus通信脚本生成器(Modbus Configurator)是一种工具,可将您的softMC应用程序变量映射到Modbus标签。 注意: 从HMI的角度定义了标签访问。也就是:

  • 读取访问 变量由softMC写入Modbus地址空间。
  • 写入访问 变量由softMC从Modbus地址空间读取。

您可以定义变量是否具有读取访问权限或写访问权限。 目前,不可能将变量定义为具有读访问权限和写访问权限。 但是,通过在HMIMBMAP.LIB中生成的特殊例行程序,系统启动时,所有写访问变量都可以被softMC一次写入(见下节)。

MCMB配置器创建三个文件:

  • HMIMBMAP.LIBHMIMBMAP.PRG文件是用于启动softMC任务的MC-Basic脚本。 这些是默认文件名,可以更改,但必须保留8.3格式。 根据访问类型,此任务可无限循环读取/写入Modbus标签。
  • 可以由HMI开发环境(如JMobile StudioIndusoft)使用的.CSV格式文件自动导入Modbus标签。 您可以通过选择将生成.csv文件的各种Python脚本来定义HMI开发环境。

变量映射

注意: 要映射到Modbus标签的变量必须通过common Shared声明定义为全局变量。

1. 为了映射变量,程序必须加载到softMC中。

2. Start the Modbus Configuration: from the ControlStudio toolbar, select Tools, and then Modbus Configurator… 启动Modbus配置器:从ControlStudio工具栏中选择Tools ,再选择Modbus Configurator

Modbus配置器窗口打开

3. 点击 Connection, 选择 Setting.

设置对话框打开,显示以下(默认)设置:

softMC Modbus HMI (3).png
 

  • Modbus offset: 用于从大于零的地址开始映射。
  • Script file name: 生成产品文件的Python脚本。 不同的脚本创建不同的.csv文件。
  • Output LIB, Output Prog, HMI CSV file name: 用于定义目标文件名。
注意: softMC文件名必须为大写字母,格式为8.3。
  • MC IP address: 用于设置您的softMC的IP地址

在“设置”对话框中进行必要的更改。 然后单击连接,则开始连接。

一旦将Modbus Configurator连接到softMC,就可以将使用所有全局变量的完整列表进行更新。 双击变量会自动将它们连续地映射到Modbus标签。 Modbus地址和数据类型自动显示在表中。

如果映射变量定义为CONST,则其访问类型将自动设置为"读"。在这种情况下,无法更改访问类型。 “读访问变量只能由HMI读取;因此,softMC只将其写入Modbus地址空间。

如果映射变量未定义为CONST,则会自动显示"写入"访问。 双击访问类型,在读取访问和写入访问之间切换变量,从而确定变量将被softMC读取或写入。

softMC Modbus HMI (4).png
 

生成和使用脚本

完成映射变量并定义访问类型后,必须保存当前配置的快照才能生成Modbus处理脚本。

1. 单击Files,然后单击Save As

映射保存在.mbas文件中。
如果在保存.mbas文件后进行更改,状态栏中的MBAS文件指示灯将亮起。

2. 要生成产品文件,请单击Generate

日志窗口将显示成功消息。
在保存.mbas文件时,您选择的目标文件夹中创建了产品文件。
文件HMIMBMAP.LIB和HMIMBMAP.PRG将在ControlStudio中自动打开。

softMC Modbus HMI (5).png

 

使用Modbus处理脚本

1. 使用ControlStudio文件管理器,将HMIMBMAP.LIB和HMIMBMAP.PRG复制到softMC。

注意:在加载和使用这些文件之前,必须加载应用程序,并且所有映射的变量必须存在于softMC内存中。

softMC Modbus HMI (6).png

1. 使用ControlStudio终端,加载库HMIMBMAP.LIB:

Load HMIMBMAP.LIB
由于HMIMBMAP.PRG导入此库,因此不得在全局加载。 该代码可以在任何合适的地方执行。

2. 验证库是否已成功加载:

?tasklist

3. 通过加载程序启动Modbus通信任务:

Load HMIMBMAP.PRG

HMIMBMAP.PRG被定义为Program Continue,因此它在加载后自动启动,并且不需要显式的StartTask命令。

当然,HMIMBMAP.PRG只能在加载HMIMBMAP.LIB之后加载和执行。 因此,您应该将以下代码添加到AUTOEXEC.PRG或其它合适的地方:

Load HMIMBMAP.LIB
Load HMIMBMAP.PRG

HMIMBMAP.PRG说明

代码:

import HMIMBMAP.LIB
Program Continue
	dim retVal as long = 0
	retVal = Init_Modbus
	while 1
		retVal = Read_Modbus_Registers
		retVal = Write_Modbus_Registers
		sleep 1
	end while
End Program

函数Init_Modbus,Read_Modbus_RegistersWrite_Modbus_RegistersHMIMBMAP.LIB中实现,它由Python脚本自动生成。

函数Init_Modbus启动Modbus服务器,然后将所有写入访问变量(即由softMC从 Modbus地址空间读取的所有变量)写入Modbus地址空间。 此功能允许您在HMI / PLC连接到 之前将系统设置为初始化的Modbus地址空间。 HMI / PLC可以读取地址空间并相应地进行初 始化。

函数Read_Modbus_RegistersWrite_Modbus_Registers被无限循环调用。 Read_Modbus_Registers读取HMI / PLC写入的所有标签,并用新值更新写访问变量, 而Write_Modbus_Registers则相反。