<b>关键字</b> <li><span>定时中断:</span>定时中断 T32/T96 SMB34/35 </li> <li><span>实时时钟:</span>精度 设置 读写时钟 指令库 保持性 同步 例程 常问问题</li> </ol> <p> </p> <p>定时中断为采用定时进入中断的模式,进行精确到ms的计时或数据采样等程序处理。</p> <p>S7-200有四个定时中断定时器可以触发中断进程,包含两个特殊寄存器(SMB34/SMB35)和两个定时器(T32/T96)中断。中断定时计时精确,可以用来执行模拟量定时采样等任务。</p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/3.gif" height="15" width="15">定时中断使用要点:</p> <p>1、定时中断程序的执行时间必须小于设定的间隔时间,如图1:</p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/timer1_1.JPG" height="166" width="537"></p> <p>图1. 中断程序的执行时间必须小于间隔时间</p> <p>2、若定时中断程序的执行时间大于设定的间隔时间,则将导致看门狗时间错误;如图2和图3:</p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/timer1_2.jpg" height="166" width="395"></p> <p>图2. 中断程序的执行时间大于间隔时间</p> <p>STEP7 Micro/win编程在线连接PLC,通过菜单栏“PLC”--->“信息”查看到如下图所示的错误:</p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/timer1_3.JPG" height="70" width="500"></p> <p>图3. 看门狗时间错误提示 </p> <p>S7-200的硬件实时时钟可以提供年、月、时、分、秒的日期/时间数据。</p> <p>CPU221、CPU222没有内置的实时时钟,需要外插“时钟/电池卡”才能获得此功能。CPU224、CPU226和CPU226 XM都有内置的实时时钟。</p> <blockquote> <p><img src="https://www.ad.siemens.com.cn/service/_assets/3.gif" width="15" height="15"> 为了提高运算效率,应当避免每个程序周期都读取实时时钟。实际上可读取的最小时间单位是1秒,可每秒读取一次(使用SM0.5上升沿触发读取指令)。</p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/4.gif" width="15" height="15"> 使用程序读取的实时时钟数据为BCD格式,可在状态图中使用十六进制格式查看。</p> </blockquote> <p>CPU靠内置超级电容(+外插电池卡)在失去供电后为实时时钟提供电源缓冲;缓冲电源放电完毕后,再次上电后时钟将停止在缺省值,并不开始走动。</p> <p>要设置日期、时间值,使之开始走动,可以:</p> <ol> <li>用编程软件(Micro/WIN)的菜单命令PLC > Time of Day Clock...,通过与CPU的在线连接设置,完成后时钟开始走动</li> <li>编用户程序使用Set_RTC(设置时钟)指令设置</li> </ol> <p>Micro/WIN可以通过任何编程连接实现实时时钟的设置。</p> <p>通过编程软件 Micro/WIN 设置 CPU 的时钟,必须先建立编程通信连接。</p> <p>在 Micro/WIN 菜单中选择“PLC > 实时时钟”命令,打开“PLC 时钟操作”对话框:</p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/rtc_setting.gif" width="479" height="422"><br> 图1. PLC 实时时钟设置界面</p> <p>图中:</p> <ol type="a"> <li>要设置时钟的 CPU 网络地址,取决于在“通信”界面中的选择</li> <li>设置日期:选择需要修改的数据字段,直接输入数字,或者使用输入框右侧的上下按钮调整</li> <li>设置时间:选择需要修改的数据字段,直接输入数字,或者使用输入框右侧的上下按钮调整</li> <li>读取 PC 时钟:按此按钮可以读取安装 Micro/WIN 的 PC 机的本机时间</li> <li>读取 PLC 时钟:按此按钮读取 PLC 内部的实时时钟数据</li> <li>根据需要选择夏时制调整选项</li> <li>按“设置”按钮,将上面的时钟日期数据写入 PLC</li> </ol> <p>Read_RTC(读时钟)和Set_RTC(设置时钟)指令靠数据缓冲区在用户程序与硬件芯片间交换数据,它们的缓冲区格式相同。</p> <p>表1. 时钟缓冲区<br> <div border="1"> <tr> <th scope="col">地址偏移</th> <th scope="col">T</th> <th scope="col">T+1</th> <th scope="col">T+2</th> <th scope="col">T+3</th> <th scope="col">T+4</th> <th scope="col">T+5</th> <th scope="col">T+6</th> <th scope="col">T+7</th> </tr> <tr> <th scope="row">数据内容</th> <td>年</td> <td>月</td> <td>日</td> <td>小时</td> <td>分钟</td> <td>秒</td> <td>0</td> <td>星期</td> </tr> <tr> <th scope="row">数值范围<br> BCD<br> (16进制)</th> <td>00-99</td> <td>01-12</td> <td>01-31</td> <td>00-23</td> <td>00-59</td> <td>00-59</td> <td>0</td> <td>0-7*</td> </tr> </div> <br> * 1 = 星期日,7 = 星期六,0 = 表示禁止计星期 <p>T 就是缓冲区的起始字节地址,可以由用户自由设置(在CPU允许的V存储区范围内)。如果设置T为VB100,那么读取时钟后,“年”的信息就会保存在VB100中,“月”保存在VB101中。</p> <p>Read_RTCX(扩展的读时钟)和Set_RTCX(扩展的设置时钟)指令从PLC读取/设置当前时间,日期及夏令时。它们的缓冲区共占用19个字节格式前8个字节与表1完全一致,后11个字节见下表2。</p> <p>表2 扩展的时钟缓冲区</p> <div border="2"> <tr> <th scope="col">地址偏移</th> <th scope="col">T+8</th> <th scope="col">T+9</th> <th scope="col">T+10</th> <th scope="col">T+11</th> <th scope="col">T+12</th> <th scope="col">T+13</th> </tr> <tr> <th scope="row">数据内容</th> <td>模式</td> <td>修正小时数</td> <td>修正分钟数</td> <td>开始月份</td> <td>开始日期</td> <td>开始小时</td> </tr> <tr> <th scope="row">数值范围<br> BCD<br> (16进制)</th> <td>*1</td> <td>00-23</td> <td>00-59</td> <td>01-12</td> <td>01-31</td> <td>00-23</td> </tr> <tr> <th scope="row">地址偏移</th> <td scope="col">T+14</td> <td>T+15</td> <td>T+16</td> <td>T+17</td> <td>T+18</td> <td> </td> </tr> <tr> <th scope="row">数据内容</th> <td>开始分钟</td> <td>结束月份</td> <td>结束日期</td> <td>结束小时</td> <td>结束分钟</td> <td> </td> </tr> <tr> <th scope="row">数值范围<br> BCD<br> (16进制)</th> <td>00-59</td> <td>01-12</td> <td>01-31</td> <td>00-23</td> <td>00-59</td> <td> </td> </tr> </div> <p>*1:</p> <ol> <li>00H=修正已禁用</li> <li>01H=欧盟(相对于UTC的时区调整=0小时)</li> <li>02H=欧盟(相对于UTC的时区调整=+1小时)</li> <li>03H=欧盟(相对于UTC的时区调整=+2小时)</li> <li>08H=欧盟(相对于UTC的时区调整=-1小时)</li> <li>10H=美国</li> <li>11H=澳大利亚</li> <li>12H=澳大利亚(塔斯马尼亚)</li> <li>13H=新西兰</li> </ol> <p>参考例程:</p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/project.GIF" width="32" height="32"> S7-200 时间设置与读取</p> <p>本例程需要 Micro/WIN V3.2 SP4 以上版本打开。</p> <blockquote> <p><img src="https://www.ad.siemens.com.cn/service/_assets/4.gif" width="15" height="15"> <strong>注意:</strong>此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。 </p> <p>使用 STEP 7-Micro/WIN中标准的READ_RTC(读取实时时钟)和 SET_RTC(设置实时时钟)指令时, 读取和设置的数据格式都是 BCD 码的。如果觉得不便计算、处理,可使用 Clock Integer 指令库。 </p> <p>Clock_Integer 指令库用于将 BCD 码格式的 S7-200 日期、时间转换为十进制整数格式,以及将十进制整数格式的日期、时间值设定为 S7-200 时钟。</p> <BLOCKQUOTE> <p><IMG src="https://www.ad.siemens.com.cn/service/_assets/4.gif" width="15" height="15"> <STRONG>注意:</STRONG>此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。 </p> </BLOCKQUOTE> <OL> <LI>取得 Clock_Integer 指令库文件,并添加到编程软件 STEP 7-Micro/WIN 中; <LI>按照要求编写用户程序调用 Clock_Integer 指令库。 </LI> </OL> <p><img src="https://www.ad.siemens.com.cn/service/_assets/project.GIF" width="32" height="32" /> Clock_Integer 指令库</p> <p>点击上面的链接下载 Clock_Integer 指令库到本地计算机硬盘,建议保存在 Micro/WIN 安装目录的 Lib 文件夹中。以下是一个完整路径的例子:<br /> <br /> C:Program FilesSiemensSTEP 7-Micro/WIN V4.0Lib<br /> <br /> 然后将指令库库手动添加到 Micro/WIN 软件中。</p> <p>成功添加指令库后,用户可以在STEP7 Micro/win的指令树中找到‘Clock_Integer (v1.0)'</p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/Clockinteger1.GIF" width="342" height="231" /></p> <p>图2.Clock_Integer 库</p> <p><strong>1、调用 READ_RTC_I,读取 PLC 时钟 ,并将其转换为十进制整数格式 </strong>:</p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/Clockinteger2.gif" width="500" height="139" /></p> <p>图3. READ_RTC_I</p> 表 3. READ_RTC_I参数<br /> <div border="1"> <tr> <th scope="col">参数</th> <th scope="col">数据类型</th> <th scope="col">注释</th> </tr> <tr> <td>EN</td> <td>BOOL</td> <td>信号为‘1’时激活库指令</td> </tr> <tr> <td>Address</td> <td>DWORD</td> <td>起始偏移地址,转换为十进制格式的 PLC 时钟被保存在以此地址为起始地址的 8 个字节中</td> </tr> </div> <p><strong>2、分配库存储区:</strong></p> <p>调用指令 READ_RTC_I 或 SET_RTC_I 后,必须定义 8 位(一个字节)的 V 存储区为库存储区。</p> <p>表4. 8 字节时间缓冲区的格式</p> <div border="1"> <tr> <th>Address</th> <th>年</th> </tr> <tr> <td>Address+1</td> <td><p>月</p></td> </tr> <tr> <td>Address+2</td> <td>日</td> </tr> <tr> <td>Address+3</td> <td>小时</td> </tr> <tr> <td>Address+4</td> <td>分钟</td> </tr> <tr> <td>Address+5</td> <td>秒</td> </tr> <tr> <td>Address+6</td> <td>保留</td> </tr> <tr> <td>Address+7</td> <td>星期(1)</td> </tr> </div> (1) 1 = 星期天;7 = 星期日;0 = 禁止星期<br /> <p>如图 2 所示,当 V50.0 为 ‘1’ 时,转换后的实时时钟被存储在 VB10 至 VB17 中。</p> <p>在状态表中用户可以看到:</p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/Clockinteger3.GIF" width="603" height="182" /></p> <p>图4.状态表</p> <p>可以看出,此时的 PLC 时钟为: 2006 年 4 月 6 日,23 时 48 分 1 秒,星期四。</p> <blockquote> <p><img src="https://www.ad.siemens.com.cn/service/_assets/4.gif" width="15" height="15" /> <strong>注意:</strong>此指令库读取的整数格式时钟数据以连续字节的形式保存,而后续的整数运算需要一个字(两个字节)长度的数据。编程时要注意这一点。</p> <p><strong>1、调用 SET_RTC_I,将以十进制整数格式存储的日期时间设定为 PLC 时钟</strong></p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/Clockinteger4.gif" width="447" height="160" /></p> <p>图5.SET_RTC_I</p> <div border="1"> <tr> <th scope="col">参数</th> <th scope="col">数据类型</th> <th scope="col">注释</th> </tr> <tr> <td>EN</td> <td>BOOL</td> <td>信号为‘1’时激活库指令</td> </tr> <tr> <td>Address</td> <td>DWORD</td> <td>起始偏移地址,以此地址为起始地址的 8 个字节中,应已经存储着用户时间数据</td> </tr> </div> <p>表5. SET_RTC_I 参数</p> <p>8 字节时间缓冲区的格式同表 2。</p> <p><strong>2、分配库存储区:</strong></p> <p>调用指令 READ_RTC_I 或 SET_RTC_I 后,必须定义 8 位(一个字节)的 V 存储区为库存储区。</p> <p><strong><img src="https://www.ad.siemens.com.cn/service/_assets/project.GIF" width="32" height="32" /> Clock_Integer 指令库例子程序</strong></p> <p><strong><img src="https://www.ad.siemens.com.cn/service/_assets/4.gif" width="15" height="15" /> 注意:</strong>该例程必须使用 Micro/WIN V4.0 SP3 或以上版本软件打开。</p> <p><strong><img src="https://www.ad.siemens.com.cn/service/_assets/4.gif" width="15" height="15" />注意:</strong>此指令库/程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。 </p> <p><strong><img src="https://www.ad.siemens.com.cn/service/_assets/4.gif" width="15" height="15" /> 注意:</strong></p> <ol> <li>CPU221、CPU222 没有内置的实时时钟,需要外插“时钟/电池卡”才能获得此功能。</li> <li>只有 STEP7 Micro/Win V3.2+SP4 和 V4.0 版本才支持使用该指令库。</li> <li>在使用 ‘SET_RTC_I’ 设定 PLC 时钟时,被设定的时间必须有实际意义,否则设定操作不能成功完成。例如: 不能将月份设为 13,或者将分钟设为 61 等。</li> <li>Address 端必须输入地址指针,如:&VB10,&VB20;或者为双字地址,如:VD100,MD10,AC0等,在该地址中存有地址</li> </ol> <p>在 CPU 停电时,实时时钟的走动靠 CPU 的内置超级电容供电。如果停电时间较长,只能在 CPU 上插入电池卡以保持时钟。 </p> <ol> <LI>时钟电池卡:内部兼有实时时钟和备份电池,专用于CPU221/CPU222 <LI>BC293:电池卡,为CPU数据保持提供电源。用于CPU224/224 XP/226保持数据和实时时钟数据 </LI> </ol> <BLOCKQUOTE> <p><STRONG><IMG src="https://www.ad.siemens.com.cn/service/_assets/4.gif" width="15" height="15"> </STRONG>CPU224及以上的CPU具有内置的实时时钟,而CPU221及CPU222需要外加时钟电池卡才具有实时时钟功能。</p> </BLOCKQUOTE> <p>S7-200的时钟电池卡/电池卡,在连续无供电时,可使用200天(即保持数据达200天)。CPU在不断电的情况下电池卡有效寿命为10年。</p> <p>注意:时钟电池卡/电池卡均为1次性使用,不可充电。</p> <p>可通过下表查看保持时间:<br> 表6. S7-200新CPU(23版)的数据保持时间</p> <div width="674" border="1"> <tbody> <tr> <th scope="col">型号</th> <th scope="col">CPU221</th> <th scope="col">CPU222</th> <th scope="col">CPU224</th> <th scope="col">CPU224XP</th> <th scope="col">CPU226</th> </tr> <tr> <td>无电池,超级电容保持</td> <td colspan="2">50小时/典型值(40℃时最少8小时)</td> <td colspan="3">100小时/典型值(40℃时最少70小时)</td> </tr> <tr> <td>电池卡</td> <td colspan="5">200天/典型值</td> </tr> </tbody> </div> <p>表7. S7-200CPU(22版)的数据保持时间</p> <div width="674" border="1"> <tbody> <tr> <th scope="col">型号</th> <th scope="col">CPU221</th> <th scope="col">CPU222</th> <th scope="col">CPU224</th> <th scope="col">CPU226</th> <th scope="col">CPU226XM</th> </tr> <tr> <td>无电池,超级电容保持</td> <td colspan="2">50小时/典型值(40℃时最少8小时)</td> <td colspan="3">190小时/典型值(40℃时最少120小时)</td> </tr> <tr> <td>电池卡</td> <td colspan="5">200天/典型值</td> </tr> </tbody> </div> <p>HMI 人机操作界面与 S7-200 的时钟同步功能包括两个方向的时钟同步:</p> <ol> <li>PLC 到面板的时钟同步。<br /> </li> </ol> 西门子操作面板可分为硬件时钟面板(TP/OP/MP270,MP370 等)和软件时钟面板(XP170X, XP177X,K-TP178 micro 等)。软件时钟面板和无备份电池的硬件时钟面板, 当断电关机后, 面板的内部时钟就会丢失, 回到出厂时的状态。但面板可以通过设置,来定时读取 PLC 的硬件时钟信息,以保持和 PLC 时钟一致,这就是 PLC 到面板的时钟同步。 <ol> <li>面板 到PLC的时钟同步。<br> </li> </ol> <p> 与上述相反,即用面板的时钟来校准 PLC 的系统时钟。PLC 实际上是得到面板的时钟信息后,调用相应设置时钟的函数(或者通过用户编制的程序),更改自己的系统时钟,以保持和面板时钟一致。在本文所提供的例程中,实现的是用 PLC 的时间同步面板系统时钟,同时可以在面板上修改 PLC 的时钟,从而间接地修改了面板的系统时钟。 <p>S7-200CPU到面板的时间同步主要操作步骤如下:</p> <p>1. 在 S7-200 中编程读取 CPU 系统时钟。周期调用 READ_RTC 函数,以读取 S7-200 CPU 的系统时钟,将时钟信息存放在 V 存储区,比如 VB100。 <br /> <br /> <img src="https://www.ad.siemens.com.cn/service/_assets/time_syn_read.GIF" width="454" height="139" /> <br /> 图6. 读取 S7-200 实时时钟<br /> <br /> 2. 在面板上配置时钟同步功能<br /> <br> PLC 到面板的时钟同步。请先设置好通讯参数;然后在“区域指针”页内,建立“日期/时间 PLC”, 指向 S7-200 中存放时间信息的区域 VW100 即可。见下图:<br /> <br /> <img src="https://www.ad.siemens.com.cn/service/_assets/time_syn_wincc_flexible.gif" width="700" height="400" /><br /> 图7. 在 WinCC flexible 中配置面板时钟同步<br /> <br /> <br /> 请先设置好控制器的通讯参数;然后插入“日期/时间-PLC” 区域指针, 指向S7-200 中存放时间信息的区域VW100即可。见下图:<br /> <br /> <img src="https://www.ad.siemens.com.cn/service/_assets/time_syn_protool.gif" width="526" height="396" /><br /> 图8. 在 ProTool 中配置面板时钟同步</p> <p>参考链接:</p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/2.gif" width="15" height="15">如何使用 WinCC flexible 组态同步操作面板 TP170A / TP170micro / TP177micro 与 S7-200 控制器间的日期和时间?</p> <p>通过操作面板修改 S7-200 的实时时钟,主要有以下几个步骤:</p> <p>1. 在面板上建立相应的输入变量<br /> <br /> 可以新建一个标志变量(比如:地址为 V20.0)和用于触发 S7-200 CPU 的写实时时钟功能,建立年、月、日、时、分、秒 、星期等 BYTE 变量,按照 S7-200 时钟缓冲区的格式分别连接到 PLC 的连续 V 存储区中,比如:VB70 – VB77。 <br /> <br /> <img src="https://www.ad.siemens.com.cn/service/_assets/4.gif" width="15" height="15" /> 因 S7-200 时钟设置指令的要求,这些 BYTE 变量必须是以 BCD 格式存在,在配置时可选用“16进制”数据格式。在面板上设置的数据必须是有效的 BCD 格式的时间、日期数据,包括星期的信息(有如需要,星期信息可能需要进行必要的转换处理),否则会导致时钟同步失败。(如果使用上文提到的Clock Integer 指令库,则可选用10进制数据格式)<br /> <br /> 2. 在 S7-200 中编程,用标志变量触发来调用 SET_RTC,将 VB70 起始的缓冲区地址作为时间参数传递给该函数,来实现通过面板修改S7 PLC时间。<br /> <br /> <img src="https://www.ad.siemens.com.cn/service/_assets/time_syn_set.gif" width="476" height="151" /><br /> 图9. 编程设置 S7-200 时钟。其中 V20.0 为触发写时钟的标志。</p> <p>下载:2.7与2.8详细设置参考例程如下:</p> <p>TP170_S7-200.rar ( 1247 KB ) </p> <p>参考链接:</p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/2.gif" width="15" height="15">如何同步操作面板与 S7-200/300/400 控制器的日期和时间</p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/5.gif" width="15" height="15" /> </p> <p>Clock_Integer 指令库读出或写入的 PLC 时钟是以十进制整数格式存储;而读、写实时时钟指令读出或写入的 PLC 时钟为 BCD 码格式。</p> <p><strong><img src="https://www.ad.siemens.com.cn/service/_assets/5.gif" width="15"" height="15"15> </strong></p> <ol> <li>写时钟指令需要严格按照8个字节的时钟缓冲区格式,设置相应的数据单元,任何不合格的数据都可能造成不能写入的现象。注意数据的格式必须是BCD格式,可以说是将10进制数换成16进制表示,如16#59(59H)就是59(秒/分等)。 </p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/4.gif" width="15" height="15"> 执行写时钟指令要保证缓冲区所有字节都包含合法数据;仅修改某些数据时,其他字节不能包含非法数值,否则会发生错误。 </p> </li> <li>写时钟指令必须使用一次性的脉冲(沿)触发条件,不能持续激活写时钟指令。</li> </ol> <p><img src="https://www.ad.siemens.com.cn/service/_assets/5.gif" width="15" height="15" /> </p> <p>步骤和方法与上述2.7章节内容相同。</p> <p>为了便于用户的编程,Micro/WIN提供了对指令库的支持。指令库就是独立于具体工程项目文件,而与Micro/WIN集成的子程序集。</p> <p>Micro/WIN可以集成两种类型的指令库:</p> <ol> <li>西门子提供的标准指令库</li> <li>用户自定义的指令库</li> </ol> <p>指令库存在于Micro/WIN指令树的Libraries(指令库)分支中:</p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/timer1_libraries.gif" height="131" width="170"><br> 图1. 指令库 </p> <p>一个子程序中可以包括几个子程序、中断服务程序。可以如同调用子程序一样在用户程序中使用指令库中的子程序;如果调用的子程序中用到了指令库中的中断程序,Micro/WIN会自动调用,不必用户处理。</p> <ol> <li>和子程序一样调用库指令</li> <li>调用库指令后,可以查看子程序的局部变量表,一般都可以找到参数的意义和格式(除非生成库时没有指定)</li> <li>如果生成库时指定了密码,库指令的内容无法查看</li> <li>西门子指令库还可能需要在编程时分配库指令内存区</li> </ol> <p>调用STEP 7 - Mciro/WIN32 V3.2 Instruction Library(指令库)需要分配库指令数据区(Library Memory)。库指令数据区是相应库的子程序和中断程序所要用到的变量存储空间。</p> <p>如果在编程时不分配库指令数据区,编译时会产生许多相同的错误(错误18)。</p> <p>操作步骤(以Modbus RTU库指令为例):</p> <p><strong>第一步:</strong>在指令树的Project(项目)中,以鼠标右键单击Program Block(程序块),在弹出的快捷菜单中选择Library Memory。如图1所示:<br> <img src="https://www.ad.siemens.com.cn/service/_assets/library_memory01.gif" width="256" height="177"> <br> 图2.分配指令库<br> <br> <strong>第二步:</strong>在弹出的选项卡中设置库指令数据区,如图2所示:<br> <br> <img src="https://www.ad.siemens.com.cn/service/_assets/library_memory03.gif" width="326" height="283"><br> 图3. 缺省情况下是从VB0开始,但因为与Modbus的保持寄存区冲突,所以手动改为VB2000。按“Suggest Address”按钮也可以自动分配。 </p> <blockquote> <p><img src="https://www.ad.siemens.com.cn/service/_assets/4.gif" width="15" height="15">可以使用Suggest Address(推荐地址)设置数据区,但要注意编程软件设置的数据区地址,只考虑到了其他一般寻址,而未考虑到诸如Modbus数据保持寄存器区等的设置。应当确保不与其他任何已使用的数据区重叠、冲突。不应重复按Suggest Address按钮,否则也会造成混乱。</p> <p> <img src="https://www.ad.siemens.com.cn/service/_assets/4.gif" width="15" height="15">在STEP 7-Micro/WIN32 V3.1中,有分配库指令数据区时有不同的操作方法,需要在Symbol Table(符号表)中设置一个首地址。我们强烈建议使用当时最新的编程版本。</p> <blockquote> <p><img src="https://www.ad.siemens.com.cn/service/_assets/4.gif" width="15" height="15"><strong>注意:</strong>添加自定义指令库,需要关闭编辑库指令的项目,新建立一个项目。如果要添加其他来源的库指令自然不需要如此。</p> </blockquote> <p><strong>第一步:</strong>在Micro/WIN的File(文件)菜单中选择Add/Remove Libraries...(添加/删除指令库)命令 ;或者在指令树的Libraries(指令库)分支上单击鼠标右键,选择Add/Remove Libraries... </p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/creat_lib02.gif" width="276" height="132"><br> 图4. 选择添加/删除指令库命令</p> <p>添加/删除对话框中将显示已经在本机的Micro/WIN中集成的用户自定义指令库。</p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/creat_lib07.gif" width="506" height="355"><br> 图5. 已安装的库指令 </p> <p><strong>第二步:</strong>按Add(添加)按钮,选择新定义的库文件路径。用户自定义库将自动添加到Micro/WIN指令树的Libraries分支下。</p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/creat_lib08.gif" width="428" height="273"><br> 图6. 选择库文件</p> <blockquote> <p><img src="https://www.ad.siemens.com.cn/service/_assets/4.gif" width="15" height="15"> 缺省情况下,Micro/WIN到图8中的路径下寻找库指令文件。用户也可以指定其他路径。但要注意库文件应当保持在非移动的介质上,如果指定了一个可移动硬盘,则硬盘不在时会发生找不到库的错误。建议用户使用缺省设置。</p> <p><strong>第一步:</strong>选择添加/删除指令库命令</p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/creat_lib02.gif" width="276" height="132"><br> 图7. 选择命令</p> <p>第二步:选中须卸载的库所对应的库文件,按Remove(删除)按钮</p> <p><img src="https://www.ad.siemens.com.cn/service/_assets/remove_lib.gif" width="506" height="355"><br> 图8. 选中要删除的库指令文件 </p>
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/181928.html