kangmujia
级别: 探索解密
精华主题: 0
发帖数量: 14 个
工控威望: 140 点
下载积分: 642 分
在线时间: 20(小时)
注册时间: 2013-06-24
最后登录: 2025-05-29
查看kangmujia的 主题 / 回贴
楼主  发表于: 前天
请教各位大咖,200SMART如何创建需要分配地址的库?我只会创建一些不需要分配地址的库文件,想搞清楚怎么样才能创建需要分配地址的库文件。
哈喽123
不和不如自己的人争高低论短长!
级别: 略有小成
精华主题: 0
发帖数量: 189 个
工控威望: 384 点
下载积分: 1781 分
在线时间: 31(小时)
注册时间: 2023-03-02
最后登录: 2025-05-30
查看哈喽123的 主题 / 回贴
1楼  发表于: 前天
这是我用百度AI搜的,差不多也是我需要表达的意思,不过,AI表述的更为详细
如下
一、创建自定义指令库
‌启动创建流程‌
在STEP7-MicroWIN SMART软件中,右键点击左侧项目树的指令库分支,选择创建库。

‌设置库属性‌

‌名称与路径‌:输入自定义库名称(支持含空格的混合字符),并选择库文件的默认存储路径。
‌组件选择‌:勾选项目中需要封装为库指令的子例程(Subroutine),添加到右侧组件列表中。
‌编译与保存‌
完成组件配置后,按向导步骤编译生成.mwl格式的库文件,自动存储到指定路径。

二、分配库存储区
‌打开库存储器管理‌
右键项目树中的程序块→库存储器,进入分配界面。

‌地址分配操作‌

‌自动分配‌:点击建议地址,系统自动查找满足需求的连续V存储区。若首次分配的地址不适用,可多次点击以获取后续可用地址段。
‌手动调整‌:在地址范围输入框直接修改起始地址,需确保所选区域未被占用且满足库需求字节数(如402字节)。
‌特殊应用注意事项‌
针对Modbus等通信库,需在调用指令时指定保持寄存器区的起始地址(如&VBx格式),且V存储区需与库要求的数据类型对齐
三、常见问题
‌编译报错‌:若出现V存储器未分配给库,需重新检查库存储区分配的连续性及容量是否满足库需求。
‌地址冲突‌:手动调整时,需避开已用于其他逻辑的V区地址段,可通过交叉引用表验证。
‌提示‌:创建库时建议使用管理员权限运行软件,以避免路径写入失败

一、创建需地址分配的库文件
‌启用管理员模式‌
右键选择STEP7-MicroWIN SMART软件图标,以管理员身份运行(避免路径写入失败)。

‌封装需存储区的组件‌

右键项目树中的指令库分支→创建库,设置名称和存储路径3;
在组件选择界面,勾选程序中使用了‌全局V区变量‌或需要‌数据缓冲区的子程序‌(如通信协议处理模块);
完成编译后生成.mwl库文件,系统自动记录组件对存储区的需求3。
‌关键设计要求‌
若需强制分配地址,需在子程序中显式声明V存储器变量(如VB100等绝对地址)或使用VAR块定义全局缓冲区的数据类型。

二、配置库存储区分配
‌进入分配界面‌
展开项目树的程序块分支→右键库存储器进入管理界面。

‌操作类型选择‌

‌自动分配‌:点击建议地址,系统自动查找满足容量需求的连续V区段(如402字节需VB0-VB401连续空间);
‌手动指定‌:在地址范围输入框直接修改起始地址(如VB2000),需确保区域未被其他程序占用。
‌特殊应用注意事项‌

Modbus等通信库需通过&VBx格式指定保持寄存器起始地址,且需对齐数据类型(如字类型需偶数字节起始地址);
V区分配后需在程序中显式调用对应地址(如MOV_W VB2000, VW100)。
三、调试与验证
‌编译检查‌
若出现V存储器未分配给库错误,需重新核对分配的连续性和容量是否达标。

‌交叉引用验证‌
通过工具→交叉引用功能检查V区地址是否与其他程序段冲突