三plc记录设置工具有什么是plc作用

当前位置: >>
S7-200 SMART PLC 系统功能说明(图文并茂)
存储卡Page 1 of 58存储卡S 7 2 0 0S M A R TC P U支持商用M i c r o S D 卡(支持容量为4 G ,8 G ,1 6 G ):可用于程序传输,C P U 固件更新,恢复 C P U出厂设置。 打开C P U 本体数字量输出点上方的端子盖,可以看到右侧有一卡槽,将M i c r o S D 卡缺口向里插入,如图 1 所示:图 1 .插入M i c r oS D卡 使用 M i c r o S D卡传送程序 制作程序传输卡: 步骤一: 用户在 C P U上电且停止状态下插入存储卡; 注意:用户也可以在C P U 断电状态下插入一张空的存储卡然后再将 C P U上电,但是需要注意的是存储卡必须确实是空的而不是旧的 固件更新卡或者是程序传输卡。否则可能会更改 C P U固件或者是内部存储的项目。 步骤二: 下载源程序到C P U (如果C P U 中已经存在源程序则不需此步); 步骤三: 在 M i c r o / W I NS M A R T中,点击“P L C ”& “编程存储卡” ,打开“编程存储卡”对话框,选择需要被拷贝到存储卡上的块,点击“编 程”按钮,如图2 所示;图 2 .编程存储卡 步骤四: 当 M i c r o / W I NS M A R T显示编程操作成功执行时(“编程存储卡”对话框显示编程成功,点击“关闭”)如图3 所示,从C P U 上取下存储 卡。file://D:\TEMP\~hh3A6D.htm 存储卡Page 2 of 58图 3 .编程存储卡成功 注意:在 M i c r o / W I NS M A R T中进行“编程存储卡”操作时,是将C P U 中存储的程序拷贝至C P U ,而非软件中打开的程序。所以必须 先将程序下载到C P U 中,才能执行“编程存储卡”操作。 使用已制作好的程序传输卡拷贝项目到另一个 C P U : 步骤一: 在 C P U断电状态下插入存储卡; 步骤二: 给 C P U上电,C P U会自动识别存储卡为程序传输卡并且自动将其中的内容复制到 C P U内部存储器,传输过程中R U N指示灯和 S T O P 指示灯以 2H Z的频率交替点亮; 步骤三: 当 C P U只有 S T O P灯开始闪烁,表示“程序传送”操作成功,则从 C P U上取下存储卡。 使用 M i c r o S D卡更新固件 步骤一: 用普通读卡器将固件文件拷贝到一个空的M i c r o S D卡中。固件文件包括:工作文件 “S 7 _ J O B . S 7 S ” 和文件夹“F W U P D A T E . S 7 S ”(内 含固件,命名方式:C P U 订货号+ 固件版本号,扩展名为. u p d )。 使用记事本打开文件 “S 7 _ J O B . S 7 S ”,应只包含字符串“F W U P D A T E ”。图 4 . 固件文件夹 步骤二: 在 C P U断电状态下将包含固件文件的存储卡插入 C P U; 步骤三: 给 C P U上电,C P U会自动识别存储卡为固件更新卡并且自动更新 C P U固件。更新过程中R U N指示灯和 S T O P指示灯以 2H Z的频率 交替点亮。 步骤四: 当 C P U只有 S T O P灯开始闪烁,表示“固件更新”操作成功,从 C P U上取下存储卡。 步骤五:file://D:\TEMP\~hh3A6D.htm 存储卡Page 3 of 58给 C P U重新上电,在 M i c r o / W I NS M A R T中查看C P U 固件版本,如图5 所示。图 5 . 查看C P U 固件版本 使用 M i c r o S D卡恢复 C P U出厂设置 步骤一: 用普通读卡器将恢复出厂设置文件拷贝到一个空的 M i c r o S D卡中。恢复出厂设置文件为文本文件 “S 7 _ J O B . S 7 S ” 。 使用记事本打 开文本文件 “S 7 _ J O B . S 7 S ”,应包含字符串“R E S E T _ T O _ F A C T O R Y ”。 步骤二: 在 C P U断电状态下插入 M i c r o S D卡,给 C P U上电,C P U会自动识别存储卡为恢复出厂设置卡并且自动恢复 C P U出厂设置。恢复出 厂设置过程中,R U N指示灯和 S T O P指示灯以 2H Z的频率交替点亮。 步骤三: 当 C P U只有 S T O P灯开始闪烁,表示“恢复出厂设置”操作成功,从 C P U上取下存储卡。 步骤四: “恢复出厂设置”操作包括以下几项操作:将 C P UI P地址恢复为出厂默认设置,清空 C P U程序块、数据库和系统块。file://D:\TEMP\~hh3A6D.htm 存储卡Page 4 of 58图 6 . 恢复出厂设置操作后 C P U的 I P地址 注意:恢复出厂设置不会更改C P U 的固件版本,C P U固件版本将保持为恢复出厂设置操作之前的固件版本。 常问问题 如何将固件更新卡转换为程序传输卡? 在C P U 上电且停止状态下插入固件更新卡,按照制作程序传输卡的步骤进行操作,即可得到一张程序传输卡,但需注意的是原卡中的固 件更新文件会被删除。 如何将程序传输卡转换为固件更新卡? 使用读卡器将固件更新文件拷贝至程序传输卡,删除原卡中的程序传输文件夹 “S I M A T I C . S 7 S ” ,并将工作文件“S 7 _ J O B . S 7 S ”中的 字符串更换为“F W U P D A T E ” 。 注意:建议用户不要在同一张存储卡上同时存储程序传输文件和固件更新文件。 在固件更新期间 C P U本体上的 L E D指示灯如何显示?如果用户在固件更新期间取出存储卡,L E D指示灯如何显示? C P U本体上的 L E D灯在使用存储卡时的显示状态及原因: 状态一:如果用户在 C P U运行状态下插入存储卡,C P U会转入停止状态。无论存储卡中存储了什么这种行为都会发生。 状态二:S T O P灯以 2H Z的频率闪烁 a .C P U上电后,通过存储卡的“固件更新”操作被成功执行,并且 C P U此刻需要重新上电或者重启; b .C P U上电后,通过存储卡的“程序传输”操作被成功执行; c .C P U上电后,通过存储卡的“恢复出厂设置”操作被成功执行; d .C P U上电后,检测到空存储卡或者是未知卡件,无任何操作被执行; e .在上电状态下插入一张存储卡。 状态三:S T O P灯和 E R R O R灯同时以 2H Z频率闪烁 a .C P U上电后,试图通过存储卡进行“固件更新”操作并且没有成功; b .C P U上电后,试图通过存储卡进行“程序传输”操作并且没有成功; c .C P U上电后,试图通过存储卡进行“恢复出厂设置”操作并且没有成功; d .当“固件更新”操作和“程序传输”操作正在进行中,用户取出存储卡。 注意:对于产生“状态二”的情况 b ,c ,d ,e以及产生“状态三”的情况 b ,c,当取出存储卡时 L E D灯的闪烁状况会停止;对 于产生“状态二”的情况 a和产生“状态三”的情况 a ,只有当 C P U重新上电或者重启时 L E D灯才会停止闪烁。 状态四:繁忙 L E D模式(R U N指示灯和 S T O P指示灯以 2H Z的频率交替点亮) “固件更新”操作和“程序传输”操作正在进行中,当该操作停止时, L E D灯显示状态转为“状态二”或者“状态三”。 如果存储卡中同时包含程序文件和固件更新文件,哪种更新操作会被优先执行?是否有预定义的优先级?是否可以在一张固件更新 存储卡上进行程序传输卡的制作? 存储卡上的固件更新文件位于一个名为 “F W U P D A T E . S 7 S ” 的文件夹中,程序传输文件位于一个名为 “S I M A T I C . S 7 S ” 的文件夹中。 所以理论上这两个文件夹可以同时存储在存储卡上。 然而,存储卡内只有一个命名为 “S 7 _ J O B . S 7 S ” 工作文件,这个文件决定了C P U将存储卡视为固件更新卡还是程序传输卡。如果工file://D:\TEMP\~hh3A6D.htm 存储卡Page 5 of 58作文件包含字符串 “F W U P D A T E ”,那么这张存储卡便是固件更新卡。若工作文件包含字符串 “T O _ I L M ”,那么这张存储卡便是程序 传输卡。 此外,如果 C P U被指示创建程序传输卡,固件实际上会在复制项目文件到存储卡上之前先删除存储卡上的以下内容: ――工作文件; ――“F W U P D A T E . S 7 S ” 文件夹和其中的所有内容; ――“S 7 _ J O B . S 7 S ” 文件夹和其中所有的内容。 如果一张程序传输卡中留有固件更新文件是存在潜在风险的。用户可能会在一张程序传输卡上拷贝固件更新文件,如果工作文件包含 字符串 “F W U P D A T E ” ,则C P U 会将存储卡视为固件更新卡。S7-200 SMART 实时时钟S 7 2 0 0S M A R T 的硬件实时时钟可以提供年、月、日、时、分、秒的日期/ 时间数据。 C P UC R 4 0A C / D C / R e l a y没有内置的实时时钟,C P US R 2 0 、C P US R 4 0 、C P US T 4 0 、C P US R 6 0 、C P US T 6 0 支持内置的实时时钟,C P U 断电 状态下可保持7 天。 S 7 2 0 0S M A R TC P US R 2 0 的时钟精度是± 1 2 0秒 /月,C P US R 4 0 、C P US T 4 0 、C P US R 6 0 、C P US T 6 0 的时钟精度是 1 2 0秒 /月。 S 7 2 0 0S M A R TC P U靠内置超级电容为实时时钟提供电源缓冲,保持时间为典型值7 天,最小值6 天。缓冲电源放电完毕后,再次上电后 时钟将停止在缺省值,并不开始走动。 注意:因为 C P UC R 4 0无内置超级电容,所以实时时钟无电源缓冲,尽管用户可以使用R E A D _ R T C和 S E T _ R T C指令设置日期/ 时间 数据,但是当 C P UC R 4 0断电并再次上电时,这些日期/ 时间数据会丢失,上电后日期时间数据会被初始化为2 0 0 0 年1 月1 日。 为了提高运算效率,应当避免每个程序周期都读取实时时钟。实际上可读取的最小时间单位是1 秒,可每秒读取一次(使用S M 0 . 5 上 升沿触发读取指令)。 使用程序读取的实时时钟数据为B C D 格式,可在状态表中使用十六进制格式查看。 要设置日期、时间值,使之开始走动,可以:l l用编程软件(M i c r o / W I NS M A R T )的菜单命令P L C &S E TC l o c k ,通过与C P U 的在线连接设置,完成后时钟开始走动 编用户程序使用S e t _ R T C (设置时钟)指令设置M i c r o / W I NS M A R T可以通过任何编程连接实现实时时钟的设置。 用 M i c r o / W I NS M A R T设置时钟 通过编程软件 M i c r o / W I NS M A R T设置 C P U的时钟,必须先建立编程通信连接。 在 M i c r o / W I NS M A R T菜单中选择“P L C“-& ”设置实时时钟”,打开“P L C时钟操作”对话框:图 1 .P L C实时时钟设置界面file://D:\TEMP\~hh3A6D.htm 存储卡Page 6 of 58图中: a .设置日期:选择需要修改的数据字段,直接输入数字,或者使用输入框右侧的上下按钮调整 b .设置时间:选择需要修改的数据字段,直接输入数字,或者使用输入框右侧的上下按钮调整 c .读取 P C时钟:按此按钮可以读取安装 M i c r o / W I NS M A R T 的 P C机的本机时间 d .读取 P L C时钟:按此按钮读取 P L C内部的实时时钟数据 e .根据需要选择夏时制调整选项 f .按“设置”按钮,将上面的时钟日期数据写入 P L C 时钟读写指令缓冲区格式 R e a d _ R T C (读时钟)和S e t _ R T C (设置时钟)指令靠数据缓冲区在用户程序与硬件芯片间交换数据,它们的缓冲区格式相同。 表1 .时钟缓冲区 地址偏移 T 数据内容 年T + 1 T + 2 T + 3 T + 4 T + 5T + 6T + 7 月 日 小时 分钟 秒 0 星期数值范围 B C D 0 0 9 90 1 1 20 1 3 10 0 2 30 0 5 90 0 5 90 0 7 * (1 6 进制) *1=星期日,7=星期六,0=表示禁止计星期 T就是缓冲区的起始字节地址,可以由用户自由设置(在C P U 允许的V 存储区范围内)。如果设置T 为V B 1 0 0 ,那么读取时钟后,“年” 的信息就会保存在V B 1 0 0 中,“月”保存在V B 1 0 1 中。 常问问题 写时钟指令(S E T _ R T C )为何不能正常改写时钟内容? 1 .写时钟指令需要严格按照8 个字节的时钟缓冲区格式,设置相应的数据单元,任何不合格的数据都可能造成不能写入的现象。注 意数据的格式必须是B C D 格式,可以说是将1 0 进制数换成1 6 进制表示,如1 6 # 5 9 (5 9 H )就是5 9 (秒/ 分等)。 执行写时钟指令要保证缓冲区所有字节都包含合法数据;仅修改某些数据时,其他字节不能包含非法数值,否则会发生错 误。 2 .写时钟指令必须使用一次性的脉冲(沿)触发条件,不能持续激活写时钟指令。 读写的时钟数据如何在十进制(整数)和B C D 数据之间转换? 要计算时间需要将B C D 格式的时钟数据与十进制的数据之间的转换,使用相应的转换指令就可以实现。 具体转换指令参见例程 参考例程2 0 0S M A R T 时间设置与读取 S 7 注意:此指令库/ 程序的作者和拥有者对于该软件的功能性和兼容性不负任何责任。使用该软件的风险完全由用户自行 承担。由于它是免费的,所以不提供任何担保,错误纠正和热线支持,用户不必为此联系西门子技术支持与服务部门。CPU 本体集成高速计数器S 7 2 0 0S M A R TC P U 具有集成的、硬件高速计数器。 C P US R 2 0 、 C P US R 4 0 、 C P U S T 4 0、C P US R 6 0和 C P US T 6 0 可以使用4 个6 0 k H z 单相高速计数器或2 个4 0 k H z 的两相高速计数器,而C P U C R 4 0 可以使用4 个3 0 k H z 单相高速计数器或2 个2 0 k H z 的两相高速计数器。 计数器共有四种基本类型:带有内部方向控制的单相计数器,带有外部方向控制的单相计数器,带有两个时钟输入的双相计数器和A / B 相正交计数器。 表1 .高速计数器的模式及输入点: 模式 HSC0 HSC1 HSC2 HSC3 0 1 带有内部方向控制的单相计数器 描述 I0.0 I0.1 I0.2 I0.3 时钟 时钟 复位 I0.3 I1.5 输入点 I0.1 I0.4file://D:\TEMP\~hh3A6D.htm 存储卡Page 7 of 583 4 6 7 9 10带有外部方向控制的单相计数器 带有增减计数时钟的双相计数器 A / B 相正交计数器时钟 时钟方向 方向 复位增时钟 减时钟 增时钟 减时钟 复位 时钟A 时钟B 时钟A 时钟B 复位表2 .高速计数器的寻址 高速计数器号 新当前值(新 C V ) 新预置值(新 P V ) H S C 0H S C 1 H S C 2 H S C 3 S M D 3 8S M D 4 8S M D 5 8S M D 1 3 8 S M D 4 2S M D 5 2S M D 6 2S M D 1 4 2当前计数值(仅读出) H C 0 H C 1 H C 2 H C 3 高速计数器的具体编程及相关的中断和其它参数,请参见《S 7 2 0 0S M A R T系统手册》,上面有详细的阐述及例程。 S T E P7 M i c r o / W I NS M A R T 提供了一个方便实用的高速计数器指令编程向导,用户可以简单快速地配置自己的高速计数器功能。 高速输入降噪 要正确操作高速计数器,可能需要执行以下一项或两项操作: ● 调整 H S C通道所用输入通道的“系统块”数字量输入滤波时间。 在 S 7 2 0 0S M A R TC P U中。 在 H S C通道对脉冲进行计数前应用 输入滤波。 这意味着,如果 H S C输入脉冲以输入滤波过滤掉的速率发生,则 H S C不会在输入上检测到任何脉冲。 请务必将 H S C的 每路输入的滤波时间组态为允许以应用需要的速率进行计数的值。 包括方向和复位输入。 下表显示可检测到的每种输入滤波组态的 最大输入频率。 表3 . 输入滤波设置和可检测到的最大输入频率 输入滤波时间 0 . 2 μs 0 . 4 μs 0 . 8 μs 1 . 6 μs 3 . 2 μs 6 . 4 μs 1 2 . 8 μs 0 . 2 m s 0 . 4 m s 0 . 8 m s 1 . 6 m s 3 . 2 m s 6 . 4 m s 1 2 . 8 m s 可检测到的最大频率 6 0 k H z(H S C的最大值) 6 0 k H z(H S C的最大值) 6 0 k H z(H S C的最大值) 6 0 k H z(H S C的最大值) 6 0 k H z(H S C的最大值) 6 0 k H z(H S C的最大值) 3 9k H z 2 . 5 k H z 1 . 2 5 k H z 6 2 5H z 3 1 2H z 1 5 6H z 7 8H z 3 9H z输入逻辑电平有效电压范围 表4 .输入逻辑电平有效电压范围 C P U 型号 C P US R 2 0 C P US T 4 0 逻辑1 信号(最小) 2 . 5 m A 时 1 5 V D C 逻辑0 信号(最大) 1 m A 时 5 V D CI 0 . 0 I 0 . 3 :8 m A 时 I 0 . 0 I 0 . 3 :1 m A 时 4 V D C 1 V D C 其他:2 . 5 m A 时1 5 V D C 其他:1 m A 时 5 V D C I 0 . 0 I 0 . 3 :8 m A 时 4 V D C 1 m A 时 5 V D C 其他:2 . 5 m A 时1 5 V D C 2 . 5 m A时 1 5 V D C 1 m A 时 5 V D C I 0 . 0 I 0 . 3 :8 m A 时 I 0 . 0 I 0 . 3 :1 m A 时 4 V D C 1 V D C 其他:2 . 5 m A 时1 5 V D C 其他:1 m A 时 5 V D C I 0 . 0 I 0 . 3 :8 m A 时 4 V D C 1 m A 时 5 V D C 其他:2 . 5 m A 时1 5 V D CC P US R 4 0 C P UC R 4 0 C P US T 6 0C P US R 6 0file://D:\TEMP\~hh3A6D.htm 存储卡Page 8 of 58●加入下拉电阻是为了使输入输出信号达到其逻辑电平有效范围。 如果设备的输出是集电极开路晶体管,则可能出现这种情况。 晶 体管关闭时,没有任何因素将信号驱动为低电平状态。 信号将转换为低电平状态,但所需时间将取决于电路的输入电阻和电容。 这 种情况可能导致脉冲丢失。 可通过将下拉电阻接到输入信号的方法避免这种情况,如下图所示。 由于 C P U的输入电压是2 4 V ,因此 电阻的额定0 功率必须为高功率。 1 0 0欧 5瓦的电阻是一个合适的选择。图1 .集电极开路H S C 输入驱动接线下拉电阻 常问问题: 为什么S 7 2 0 0S M A R T高速计数器在低频率下计数正常,而在高频率下无法计数? 答:在 S 7 2 0 0中,H S C旁路了输入滤波。而在 S 7 2 0 0S M A R T中,H S C没有旁路输入滤波,因此系统块中设置的输入滤波会影响H S C ,这样可以有助于一些用户避免高频干扰。默认的滤波时间 6 . 4 μs可以允许计数的最高频率是7 8H Z ,如果要计数更高频率的信 号,必须调整相应的滤波时间。 最大频率与滤波时间的对应关系如下表: 输入滤波时间 0 . 2 μs 0 . 4 μs 0 . 8 μs 1 . 6 μs 3 . 2 μs 6 . 4 μs 1 2 . 8 μs 0 . 2 m s 0 . 4 m s 0 . 8 m s 1 . 6 m s 3 . 2 m s 6 . 4 m s 1 2 . 8 m s 可检测到的最大频率 6 0 k H z(H S C的最大值) 6 0 k H z(H S C的最大值) 6 0 k H z(H S C的最大值) 6 0 k H z(H S C的最大值) 6 0 k H z(H S C的最大值) 6 0 k H z(H S C的最大值) 3 9k H z 2 . 5 k H z 1 . 2 5 k H z 6 2 5H z 3 1 2H z 1 5 6H z 7 8H z 3 9H z滤波时间的设置在 “系统块” 的 “数字量输入” 选项设置,如下图:file://D:\TEMP\~hh3A6D.htm 存储卡Page 9 of 58S 7 2 0 0S M A R T高速计数器是否支持模式1 2 ? 不支持。 高速计数器怎样占用输入点? 高速计数器根据被定义的工作模式,按需要占用C P U 上的数字量输入点。每一个计数器都按其工作模式占用固定的输入点。在某个模式 下没有用到的输入点,仍然可以用作普通输入点;被计数器占用的输入点(如外部复位),在用户程序中仍然可以访问到。 为什么高速计数器不能正常工作? 在程序中要使用初次扫描存储器位S M 0 . 1 来调用H D E F 指令,而且只能调用一次。如果用S M 0 . 0 调用或者第二次执行H D E F 指令会引起运行 错误,而且不能改变第一次执行H D E F指令时对计数器的设定。 对高速计数器如何寻址?为什么从S M D x 中读不出当前的计数值? 可以直接用H C 0 ;H C 1 ;H C 2 ;H C 3 对不同的高速计数器进行寻址读取当前值,也可以在状态表中输入上述地址直接监视高速计数器的当 前值。S M D x 不存储当前值,参见上述表2 。 高速计数器的计数值是一个3 2 位的有符号整数。 高速计数器如何复位到0 ?l l选用带外部复位模式的高速计数器,当外部复位输入点信号有效时,高速计数器复位为0 也可使用内部程序复位,即将高速计数器设定为可更新初始值,并将初始值设为0 ,执行H S C 指令后,高数计数器即复位为0高速计数器的值在复位后是复位到初始值还是“0 ”值? 外部复位会将当前值复位到0 值而不是初始值;内部复位则将当前值复位到初始值(若初始值设为”0 “,则内部复位也是复位到”0 “值)。如果你设定了可更新初始值,但在中断中未给初始值特殊寄存器赋新值,则在执行H S C指令后,它将按初始化时设定的初始 值赋值。 为何给高速计数器赋初始值和预置值时后不起作用,或效果出乎意料? 高速计数器可以在初始化或者运行中更改设置,如初始值、预置值。其操作步骤应当是: 1 .设置控制字节的更新选项。需要更新哪个设置数据,就把控制字节中相应的控制位置位(设置为“1 ”);不需要改变的设置, 相应的控制位就不能设置 2 .然后将所需 的值送入初始值和预置值控制寄存器 3 .执行H S C 指令file://D:\TEMP\~hh3A6D.htm 存储卡Page 10 of 58高速计数器指令向导在 M i c r o / W I NS M A R T中的命令菜单中选择 T o o l s (工具)&W i z a r d s (向导)中选择 H i g hS p e e dC o u n t e r (高速计数器向导) ,也 可以在项目树中选择 W i z a r d s (向导)文件夹中的 H i g hS p e e dC o u n t e r (高速计数器向导)按钮,如图 1 所示。图 1 . 选择 H S C向导 步骤一:选择 H S C编号,如图 2 所示。图 2 . 选择计数器编号 步骤二:为计数器命名,在左侧树形目录中选择“高速计数器”,如图 3 所示。file://D:\TEMP\~hh3A6D.htm 存储卡Page 11 of 58图 3 . 高速计数器命名 步骤三:选择计数器模式,详细信息请见“表1 . 高速计数器的模式及输入点”。图 4 . 选择高速计数器模式 步骤四:配置初始化信息。file://D:\TEMP\~hh3A6D.htm 存储卡Page 12 of 58图 5 .H S C初始化选项 在上图中: 1 .为初始化子程序命名,或者使用默认名称。 2 .设置计数器预置值:可以为整数、双字地址或符号名:如 5 0 0 0 、V D 1 0 0 、P V _ H C 0 。用户可使用全局符号表中双字整数对应的符号 名。如果用户输入的符号名尚未定义,点击‘ G e n e r a t e(生成)’后会看到:这个提示框显示:“这不是定义的全局符号。您希望定义符号吗”,点击“是”填入地址和注释,注意:地址必须为双字地址, 注释可以不填。 3 .设置计数器初始值:可以为整数、双字地址或符号名:5 0 0 0 、V D 1 0 0 、C V _ H C 0 。 4 .初始化计数方向:增,减。 5 .对于带外部复位端的高速计数器,可以设定复位信号为高电平有效或者低电平有效。 6 .使用A / B 相正交计数器时,可以将计数频率设为1 倍速或4 倍速。使用非A / B 相正交计数器时,此项为虚。 7 .S 7 2 0 0S M A R T均不支持带外部启动端的高速计数器,因此此项为虚。 注意:所谓“高/ 低电平有效”指的是在物理输入端子上的有效逻辑电平,即可以使 L E D灯点亮的电平。这取决于源型/ 漏型 输入接法,并非指实际电平的高、低。 步骤五:配置中断事件,如图 6 所示。file://D:\TEMP\~hh3A6D.htm 存储卡Page 13 of 58图 6 . 配置中断 如图 6 所示,一个高速计数器最多可以有 3个中断事件,在白色方框中填写中断服务程序名称或者使用默认名称: 在这里配置的中断事件并非必须,系由用户根据自己的控制工艺要求选用。 1 .外部复位输入有效值时中断,如果使用的高速计数器模式不具有外部复位端,则此项为虚。 2 .方向控制输入状态改变时的中断,有以下 3种情况会产生该中断:? ? ?单项计数器的内部或外部方向控制位改变瞬间 双相计数器增、减时钟交替的瞬间 A / B 相脉冲相对相位(超前或滞后)改变时瞬间3 .当前值等于预置值时产生的中断,通过向导,可以在该中断的服务程序中重新设置高速计数器的参数,如预置值、当前值。一个 这样的过程称为‘一步‘。 步骤六:配置 H S C步数,如图 7 所示,最多可设置 1 0步。图 7 .配置 H S C步数 步骤七:定义高速计数器每一步的操作,如图 8 所示:file://D:\TEMP\~hh3A6D.htm 存储卡Page 14 of 58图 8 .H S C第一步 在这里配置的是当前值等于设定值中断的服务程序中的操作: 1 .向导会自动为当前值等于预置值匹配一个新的中断服务程序,用户可以对其重新命名,或者使用默认的名称。 2 .勾选后,用户在右侧输入新的预置值。 3 .勾选后,用户在右侧输入新的当前值。 4 .如果选用的高速计数器模式有内部方向控制位。 5 .使用相同的方法完成其余两步的设置 步骤八:完成向导,如图 9 所示:图 9 .完成向导 点击向导对话框左侧树形目录中的选项“组件(C o m p o n e n t s )”可以看到此时向导生成的子程序和中断程序名称及描述,点击“生成 (G e n e r a t e )”按钮,完成向导。 注意:M i c r o / W I NS M A R T高速计数器指令向导采用树形目录的形式,用户可以直接在目录树中选择相应选项进行设置,这种方式便 于用户在完成指令向导后根据实际需求进行快速修改。 步骤九:调用子程序:file://D:\TEMP\~hh3A6D.htm 存储卡Page 15 of 58注意:l lH S C _ I N I T为初始化子程序,请在主程序块中使用 S M 0 . 1或一条边沿触发指令调用一次此子程序。 向导生成的中断服务程序及子程序都未上锁,用户可以根据自己的控制需要进行修改。P I D 控制S 7 2 0 0S M A R T 能够进行P I D 控制。S 7 2 0 0S M A R TC P U 最多可以支持8 个P I D 控制回路(8 个P I D 指令功能块)。 P I D 是闭环控制系统的比例-积分-微分控制算法。 P I D 控制器根据设定值(给定)与被控对象的实际值(反馈)的差值,按照P I D 算法计算出控制器的输出量,控制执行机构去影响被控 对象的变化。 P I D 控制是负反馈闭环控制,能够抑制系统闭环内的各种因素所引起的扰动,使反馈跟随给定变化。 根据具体项目的控制要求,在实际应用中有可能用到其中的一部分,比如常用的是P I (比例-积分)控制,这时没有微分控制部分。PID算法在S 7 2 0 0S M A R T 中的实现 P I D 控制最初在模拟量控制系统中实现,随着离散控制理论的发展,P I D 也在计算机化控制系统中实现。 为便于实现,S 7 2 0 0S M A R T 中的P I D 控制采用了迭代算法。详细的计算方法请参考《S 7 2 0 0S M A R T 系统手册》中P I D 指令部分的相关内 容。 (G a i n ,增益),T (积分时间常数),T (微分时间常数),T (采样时间)。 计算机化的P I D 控制算法有几个关键的参数K c i d s 在S 7 2 0 0S M A R T 中P I D 功能是通过P I D 指令功能块实现。通过定时(按照采样时间)执行P I D 功能块,按照P I D 运算规律,根据当时的给 定、反馈、比例-积分-微分数据,计算出控制量。 P I D 功能块通过一个P I D 回路表交换数据,这个表是在V 数据存储区中的开辟,长度为3 6 字节。因此每个P I D 功能块在调用时需要指定两 个要素:P I D 控制回路号,以及控制回路表的起始地址(以V B 表示)。 由于P I D 可以控制温度、压力等等许多对象,它们各自都是由工程量表示,因此有一种通用的数据表示方法才能被P I D 功能块识别。S 7 2 0 0S M A R T 中的P I D 功能使用占调节范围的百分比的方法抽象地表示被控对象的数值大小。在实际工程中,这个调节范围往往被认为与 被控对象(反馈)的测量范围(量程)一致。 P I D 功能块只接受0 . 0-1 . 0 之间的实数(实际上就是百分比)作为反馈、给定与控制输出的有效数值,如果是直接使用P I D 功能块编 程,必须保证数据在这个范围之内,否则会出错。其他如增益、采样时间、积分时间、微分时间都是实数。 因此,必须把外围实际的物理量与P I D 功能块需要的(或者输出的)数据之间进行转换。这就是所谓输入/ 输出的转换与标准化处理。 《S 7 2 0 0S M A R T 系统手册》上有详细的介绍。 S 7 2 0 0S M A R T 的编程软件M i c r o / W I NS M A R T 提供了P I D 指令向导,以方便地完成这些转换/ 标准化处理。除此之外,P I D 指 令也同时会被自动调用。调试P I D 控制器 P I D 控制的效果就是看反馈(也就是控制对象)是否跟随设定值(给定),是否响应快速、稳定,是否能够抑制闭环中的各种扰动而回 复稳定。 要衡量P I D 参数是否合适,必须能够连续观察反馈对于给定变化的响应曲线;而实际上P I D 的参数也是通过观察反馈波形而调试的。因 此,没有能够观察反馈的连续变化波形曲线的有效手段,就谈不上调试P I D 参数。 观察反馈量的连续波形,可以使用带慢扫描记忆功能的示波器(如数字示波器),波形记录仪,或者在P C 机上做的趋势曲线监控画面 等。 调试控制面板工具,具有图形化的给定、反馈、调节器输出波形 新版编程软件S T E P7 M i c r o / W I NS M A R T 内置了一个P I D 显示,可以用于手动调试P I D 参数。对于没有“自整定P I D ”功能的老版C P U ,也能实现P I D 手动调节。 P I D 参数的取值,以及它们之间的配合,对P I D 控制是否稳定具有重要的意义。这些主要参数是:l采样时间:file://D:\TEMP\~hh3A6D.htm 存储卡Page 16 of 58计算机必须按照一定的时间间隔对反馈进行采样,才能进行P I D 控制的计算。采样时间就是对反馈进行采样的间隔。短于采样时 间间隔的信号变化是不能测量到的。过短的采样时间没有必要,过长的采样间隔显然不能满足扰动变化比较快、或者速度响应要 求高的场合。 编程时指定的P I D 控制器采样时间必须与实际的采样时间一致。S 7 2 0 0S M A R T 中P I D 的采样时间精度用 定时中断来 保证。l增益(G a i n ,放大系数,比例常数) 增益与偏差(给定与反馈的差值)的乘积作为控制器输出中的比例部分。过大的增益会造成反馈的振荡。 积分时间(I n t e g r a lT i m e ) 偏差值恒定时,积分时间决定了控制器输出的变化速率。积分时间越短,偏差得到的修正越快。过短的积分时间有可能造成不稳 定。 积分时间的长度相当于在阶跃给定下,增益为“1 ”的时候,输出的变化量与偏差值相等所需要的时间,也就是输出变化到二倍 于初始阶跃偏差的时间。 如果将积分时间设为最大值,则相当于没有积分作用。 微分时间(D e r i v a t i v eT i m e ) 偏差值发生改变时,微分作用将增加一个尖峰到输出中,随着时间流逝减小。微分时间越长,输出的变化越大。微分使控制对扰 动的敏感度增加,也就是偏差的变化率越大,微分控制作用越强。微分相当于对反馈变化趋势的预测性调整。 如果将微分时间设置为0 就不起作用,控制器将作为P I 调节器工作。ll常问问题 对于某个具体的P I D 控制项目,是否可能事先得知比较合适的参数?有没有相关的经验数据? 虽然有理论上计算P I D 参数的方法,但由于闭环调节的影响因素很多而不能全部在数学上精确地描述,计算出的数值往往没有什么实际 意义。因此,除了实际调试获得参数外,没有什么可用的经验参数值存在。甚至对于两套看似一样的系统,都可能通过实际调试得到 完全不同的参数值。 P I D 控制不稳定怎么办?如何调试P I D ? 闭环系统的调试,首先应当做开环测试。所谓开环,就是在P I D 调节器不投入工作的时候,观察:l l反馈通道的信号是否稳定输出通道是否动作正常可以试着给出一些比较保守的P I D 参数,比如放大倍数(增益)不要太大,可以小于1 ,积分时间不要太短,以免引起振荡。在这个基 础上,可以直接投入运行观察反馈的波形变化。给出一个阶跃给定,观察系统的响应是最好的方法。 如果反馈达到给定值之后,历经多次振荡才能稳定或者根本不稳定,应该考虑是否增益过大、积分时间过短;如果反馈迟迟不能跟随 给定,上升速度很慢,应该考虑是否增益过小、积分时间过长…… 总之,P I D 参数的调试是一个综合的、互相影响的过程,实际调试过程中的多次尝试是非常重要的步骤,也是必须的。 I D 细调功能。 S 7 2 0 0S M A R T 的新一代产品提供了自整定的P 没有采用积分控制时,为何反馈达不到给定? 这是必然的。因为积分控制的作用在于消除纯比例调节系统固有的“静差”。没有积分控制的比例控制系统中,没有偏差就没有输出 量,没有输出就不能维持反馈值与给定值相等。所以永远不能做到没有偏差。 如何实现P I D 反作用调节? 参见P I D 向导中的常问问题。 S 7 2 0 0S M A R T 控制变频器,在变频器也有P I D 控制功能时,应当使用谁的P I D 功能? 可以根据具体情况使用。一般来说,如果需要控制的变量直接与变频器直接有关,比如变频水泵控制水压等,可以优先考虑使用变频 器的P I D 功能。参考链接 I D 指令向导进行P I D 编程 用P P I D 自整定与P I D 调试面板 P I D的自动/ 手动切换PID Wizard - PID向导file://D:\TEMP\~hh3A6D.htm 存储卡Page 17 of 58M i c r o / W I NS M A R T 提供了P I DW i z a r d (P I D 指令向导),可以帮助用户方便地生成一个闭环控制过程的P I D 算法。此向导可以完成绝大多 数P I D 运算的自动编程,用户只需在主程序中调用P I D 向导生成的子程序,就可以完成P I D 控制任务。 P I D 向导既可以生成模拟量输出P I D 控制算法,也支持开关量输出;既支持连续自动调节,也支持手动参与控制。建议用户使用此向导 对P I D 编程,以避免不必要的错误。 建议用户使用较新的编程软件版本。在新版本中的P I D 向导获得了改善。PID向导编程步骤 使用以下方法之一打开 P W M向导: ●在M i c r o / W I NS M A R T 中的工具菜单中选择P I D 向导:图1 .选择P I D 向导● 在项目树中打开“向导”文件夹,然后双击“P I D ”,或选择“P I D ”并按回车键。图2 .选择P I D 向导 第一步:定义需要配置的P I D 回路号 在此对话框中选择要组态的回路。 最多可组态 8个回路。 在此对话框上选择回路时,P I D向导左侧的树视图随组态该回路所需的所 有节点一起更新。图3 .选择需要配置的回路 第二步:为回路组态命名 可为回路组态自定义名称。 此部分的默认名称是“回路 x ”,其中“x ”等于回路编号。file://D:\TEMP\~hh3A6D.htm 存储卡Page 18 of 58图4 .为P I D 回路命名 第三步:设定P I D 回路参数图5 .设置P I D 参数 图5 中定义了P I D 回路参数,这些参数都应当是实数: a .增益: 即比例常数,默认值= 1 . 0 0 。 b .积分时间:如果不想要积分作用,默认值= 1 0 . 0 0 。 c .微分时间:如果不想要微分回路,可以把微分时间设为0,默认值= 0 . 0 0 。 d .采样时间:是P I D 控制回路对反馈采样和重新计算输出值的时间间隔, ,默认值= 1 . 0 0 。在向导完成后,若想要修改此数,则必须 返回向导中修改,不可在程序中或状态表中修改。 注意:关于具体的P I D 参数值,每一个项目都不一样,需要现场调试来定,没有所谓经验参数。 第四步:设定回路过程变量file://D:\TEMP\~hh3A6D.htm 存储卡Page 19 of 58图6 .设定P I D 输入过程变量 a .指定回路过程变量 ( P V )如何标定。可以从以下选项中选择: ? 单极性: 即输入的信号为正,如0 -1 0 V 或0 -2 0 m A 等 ? 双极性:输入信号在从负到正的范围内变化。如输入信号为±1 0 V 、±5 V 等时选用 0 % 偏移:如果输入为4 -2 0 m A 则选单极性及此项,4 m A 是0 -2 0 m A 信号的2 0 % ,所以选2 0 %偏移,即4 m A 对应5 5 3 0 ,2 0 m A ? 选用2 对应2 7 6 4 8 。 0°C ? 温度 x1 ? 温度 x1 0°F b .反馈输入取值范围 . 设置为单极时,缺省值为0-2 7 6 4 8 ,对应输入量程范围0-1 0 V 或0-2 0 m A 等,输入信号为正 ? 在a . 设置为双极时,缺省的取值为2 7 6 4 8-+ 2 7 6 4 8 ,对应的输入范围根据量程不同可以是±1 0 V 、±5 V 等 ? 在a ? 在a . 选中2 0 %偏移量时,取值范围为5 5 3 0-2 7 6 4 8 ,不可改变 c .在“标定”( S c a l i n g )参数中,指定回路设定值 ( S P )如何标定。 默认值是 0 . 0和 1 0 0 . 0之间的一个实数。 此反馈输入也可以是工程单位数值,参见:设置给定-反馈的量程范围。 第五步:设定输入回路输出选项图7 .设定P I D 输出选项 a .输出类型 可以选择模拟量输出或数字量输出。模拟量输出用来控制一些需要模拟量给定的设备,如比例阀、变频器等;数字量输出实际上file://D:\TEMP\~hh3A6D.htm 存储卡Page 20 of 58是控制输出点的通、断状态按照一定的占空比变化,可以控制固态继电器(加热棒等) b .选择模拟量则需设定回路输出变量值的范围,可以选择: -1 0 V 或0 -2 0 m A 等 ? 单极:单极性输出,可为0 ? 双极:双极性输出,可为正负1 0 V 或正负5 V 等 ? 单极2 0 %偏移量:如果选中2 0 %偏移,使输出为4-2 0 m A c .取值范围: 为单极时,缺省值为 0到 2 7 6 4 8 ? c 为双极时,取值2 7 6 4 8到2 7 6 4 8 ? c 为2 0 % 偏移量时,取值5 5 3 0-2 7 6 4 8,不可改变 ? c 如果选择了开关量输出,需要设定此循环周期,如图7 所示:图8 .设定P I D 输出为数字量第六步:设定回路报警选项图9 .设定回路报警限幅值 向导提供了三个输出来反映过程值( P V ) 的低值报警、高值报警及过程值模拟量模块错误状态。当报警条件满足时,输出置位为1 。这些 功能在选中了相应的选择框之后起作用。 a .使能低值报警并设定过程值( P V ) 报警的低值,此值为过程值的百分数,缺省值为0 . 1 0 ,即报警的低值为过程值的1 0 %。此值最低file://D:\TEMP\~hh3A6D.htm 存储卡Page 21 of 58可设为0 . 0 1 ,即满量程的1 % b .使能高值报警并设定过程值( P V ) 报警的高值,此值为过程值的百分数,缺省值为0 . 9 0 ,即报警的高值为过程值的9 0 %。此值最高 可设为1 . 0 0 ,即满量程的1 0 0 % c .使能过程值( P V ) 模拟量模块错误报警并设定模块于C P U 连接时所处的模块位置。“E M 0 ”就是第一个扩展模块的位置 第七步:定义向导所生成的P I D 初使化子程序和中断程序名及手/ 自动模式图1 0 .指定子程序、中断服务程序名和选择手动控制 向导已经为初使化子程序和中断子程序定义了缺省名,你也可以修改成自己起的名字。 a .指定P I D 初使化子程序的名字。 b .指定P I D 中断子程序的名字 注意: 1 .如果你的项目中已经存在一个P I D 配置,则中断程序名为只读,不可更改。因为一个项目中所有P I D 共用一个中断程序,它 的名字不会被任何新的P I D 所更改。 2 .P I D 向导中断用的是S M B 3 4 定时中断,在用户使用了P I D 向导后,注意在其它编程时不要再用此中断,也不要向S M B 3 4 中写入 新的数值,否则P I D 将停止工作。 c .此处可以选择添加P I D手动控制模式。在P I D 手动控制模式下,回路输出由手动输出设定控制,此时需要写入手动控制输出参数 一个0 . 0 -1 . 0 的实数,代表输出的0 %-1 0 0 %而不是直接去改变输出值。 P I D控制的自动/ 手动之间的无扰动切换第八步:指定P I D 运算数据存储区file://D:\TEMP\~hh3A6D.htm 存储卡Page 22 of 58图1 1 .分配运算数据存储区 P I D 指令(功能块)使用了一个1 2 0 个字节的V 区参数表来进行控制回路的运算工作;除此之外,P I D 向导生成的输入/ 输出量的标准化程 序也需要运算数据存储区。需要为它们定义一个起始地址,要保证该地址起始的若干字节在程序的其它地方没有被重复使用。如果点 击“建议”,则向导将自动为你设定当前程序中没有用过的V 区地址。 自动分配的地址只是在执行P I D 向导时编译检测到空闲地址。向导将自动为该参数表分配符号名,用户不要再自己为这 些参数分配符号名,否则将导致P I D 控制不执行。 第九步:生成P I D 子程序、中断程序及符号表等 一旦点击完成按钮,将在你的项目中生成上述P I D 子程序、中断程序及符号表等。图1 2 .生成P I D 子程序、中断程序和符号表等 第十步:配置完P I D 向导,需要在程序中调用向导生成的P I D 子程序(如下图)file://D:\TEMP\~hh3A6D.htm 存储卡Page 23 of 58图1 3 .P I D 子程序图1 4 .调用P I D 子程序 在用户程序中调用P I D 子程序时,可在指令树的程序块中用鼠标双击由向导生成的P I D 子程序,在局部变量表中,可以看到有关形式参 数的解释和取值范围。 a .必须用S M 0 . 0 来使能 P I D x _ C T R L子程序,S M 0 . 0后不能串联任何其他条件,而且也不能有越过它的跳转;如果在子程序中调用 P I D x _ C T R L子程序,则调用它的子程序也必须仅使用 S M 0 . 0调用,以保证它的正常运行 b .此处输入过程值(反馈)的模拟量输入地址 c .此处输入设定值变量地址(V D x x ),或者直接输入设定值常数,根据向导中的设定0 . 0 -1 0 0 . 0 ,此处应输入一个0 . 0 -1 0 0 . 0 的实 数,例:若输入2 0 ,即为过程值的2 0 %,假设过程值A I W 0 是量程为0 -2 0 0 度的温度值,则此处的设定值2 0 代表4 0 度(即2 0 0 度的 2 0 %);如果在向导中设定给定范围为0 . 0-2 0 0 . 0 ,则此处的2 0 相当于2 0 度 d .此处用I 0 . 0 控制P I D 的手/ 自动方式,当I 0 . 0 为1 时,为自动,经过P I D 运算从A Q W 0 输出;当I 0 . 0 为0 时,P I D 将停止计算,A Q W 0 输出 为M a n u a l O u t p u t (V D 4 )中的设定值,此时不要另外编程或直接给A Q W 0 赋值。若在向导中没有选择P I D 手动功能,则此项不会出现 e .定义P I D 手动状态下的输出,从A Q W 0 输出一个满值范围内对应此值的输出量。此处可输入手动设定值的变量地址(V D x x ),或直 接输入数。数值范围为0 . 0 1 . 0 之间的一个实数,代表输出范围的百分比。例:如输入0 . 5 ,则设定为输出的5 0 %。若在向导中没 有选择P I D 手动功能,则此项不会出现 f .此处键入控制量的输出地址 g .当高报警条件满足时,相应的输出置位为1 ,若在向导中没有使能高报警功能,则此项将不会出现 h .当低报警条件满足时,相应的输出置位为1 ,若在向导中没有使能低报警功能,则此项将不会出现 i .当模块出错时,相应的输出置位为1 ,若在向导中没有使能模块错误报警功能,则此项将不会出现 调用P I D 子程序时,不用考虑中断程序。子程序会自动初始化相关的定时中断处理事项,然后中断程序会自动执行。 第十一步:实际运行并调试P I D 参数 没有一个P I D 项目的参数不需要修改而能直接运行,因此需要在实际运行时调试P I D 参数。 查看数据块以及符号表相应的P I D 符号标签的内容,可以找到包括P I D 核心指令所用的控制回路表,包括比例系数、积分时间等等。将 此表的地址复制到状态表中,可以在监控模式下在线修改P I D 参数,而不必停机再次做配置。 参数调试合适后,用户可以在数据块中写入,也可以再做一次向导,或者编程向相应的数据区传送参数。 常问问题 做完P I D 向导后,如何知道向导中设定值,过程值及P I D 等参数所用的地址?l做完P I D 向导后可在符号表 围。 在数据块中,查看P I D 向导所生成的符号表( 上例中为P I D 0 _ S Y M ) ,可看到各参数所用的详细地址,及数值范l中,查看P I D 指令回路表的相关参数。如图所示:图1 5 .P I D 数据块 做完P I D 向导后,如何在调试中修改P I D 参数? 可以在状态表 中,输入相应的参数地址,然后在线写入用户需要的P I D 参数数值,这样用户就可根据工艺需要随时对P I D 参数、设定file://D:\TEMP\~hh3A6D.htm 存储卡Page 24 of 58值等进行调整。 P I D 已经调整合适,如何正式确定参数? 可以在数据块中直接写入参数。 做完P I D 向导后,能否查看P I D 生成的子程序,中断程序? P I D 向导生成的子程序,中断程序用户是无法看到的,也不能对其进行修改。没有密码能够打开这些子程序,一般的应用也没有必要打 开查看。 P I D 参数有经验值吗? 每一个项目的P I D参数都不一样,没有经验参数,只能现场调试获得。 我的P I D 向导生成的程序为何不执行?l l必须保证用S M 0 . 0 无条件调用P I D 0 _ C T R L 程序 在程序的其它部分不要再使用S M B 3 4 定时中断,也不要对S M B 3 4 赋值如何实现P I D 反作用调节? 在有些控制中需要P I D 反作用调节。例如:在夏天控制空调制冷时,若反馈温度(过程值)低于设定温度,需要关阀,减小输出控制 (减少冷水流量等),这就是P I D 反作用调节(在P I D 正作用中若过程值小于设定值,则需要增大输出控制)。 若想实现P I D 反作用调节,需要把P I D 回路的增益设为负数。对于增益为0 的积分或微分控制来说,如果指定积分时间、微分时间为负 值,则是反作用回路。 如何根据工艺要求有选择地投入P I D 功能? 可使用“手动/ 自动”切换的功能。P I D 向导生成的P I D 功能块只能使用S M 0 . 0 的条件调用。参考链接 功能简介 P I DPID 向导 中的给定-反馈设置完成P I DW i z a r d 配置后,会为每个P I D 回路生成一个子程序P I D x _ C T R L (x=0-7 )。在用户程序中,必须使用S M 0 . 0 始终调用这个子 程序才能实现P I D 功能。 下图是一个最简单的P I D 子程序调用程序段:图1 .调用P I D 子程序 其中:l l lP V _ I : 过程反馈参数值的入口 S e t p o i n t : 给定参数值的入口 O u t p u t : P I D 调节器的输出值在这里,给定、反馈的入口参数不是P I D 指令功能块所需要的0 . 0- 1 . 0 之间的实数,而可以是实际的反馈地址,或是其他变量。例 如,P V _ I 可以是模拟量输入地址A I W 0 ,也可以是存储器地址V W 1 0 0 等;S e t p o i n t 则往往来自V 变量存储区,这样可以从人机操作界面 (H M I )设备输入给定值。 注意: 对于P I D 控制系统来说,必须保证给定与过程反馈的一致性:l给定与反馈的物理意义一致 这取决于被控制的对象,如果是压力,则给定也必须对应于压力值;如果是温度,则给定也必须对应于温度。l给定与反馈的数值范围对应file://D:\TEMP\~hh3A6D.htm 存储卡Page 25 of 58如果给定直接是摄氏温度值,则反馈必须是对应的摄氏温度值;如果反馈直接使用模拟量输入的对应数值,则给定也 必须向反馈的数值范围换算。 如果给定与反馈的换算有特定的比例关系也可以。如给定也可以表示为以反馈的数值范围的百分比数值。 给定与反馈的数值具体是什么数值,其取值范围究竟如何,完全取决于我们在使用“P I D 向导”编程时指定的给定与反馈的数值范围。 其中,反馈量的数值范围不能随便自己定义,而要取决于具体应用的模拟量输入模块。图2 .在图中c . 处设置给定范围图3 .在图中c . 处设置反馈范围实例 假定一个P I D 控制系统的控制对象是压力,反馈元件的测量范围为0-1 6 M P a 。反馈器件的信号经过变换,以0-2 0 m A (或4-2 0 m A ) 电流信号的形式输入到E M 2 3 1 模拟量输入模块中。据此,我们可以按下表设置给定、反馈的范围。 表1 . 反馈(单极性) 实际物理量 高限 1 6M P a 模拟量输入数值 3 2 0 0 0 1 0 0 . 0 给定 百分比形式(占0-1 6 M P a 的百分比) 物理工程单位形式 n ×1 6 . 0file://D:\TEMP\~hh3A6D.htm 存储卡Page 26 of 58低限 0M P a0(0-2 0 m A ) 6 4 0 0(4-2 0 m A )0 . 00 . 0n为比例系数,为了精度高些可以设置n = 1 0 等等又如一个温度控制的P I D 系统,温度值直接由热电偶测量,输入到E M 2 3 1T C (热电偶)模块转换为温度 值。热电偶为J 型,其测量范围 为 1 5 0 . 0 °C-1 2 0 0 . 0°C 。则可按如下设置给定的范围。 表2 . 反馈(双极性) 高限 1 2 0 0 . 0°C1 2 0 0 0 低限 1 5 0 . 0°C1 5 0 0 1 0 0 . 0 0 . 0 给定 1 2 0 0 1 5 0 实际物理量 模拟量输入数值 百分比形式(占1 5 0 °C-1 2 0 0 . 0 °C 的百分比) 物理工程单位形式在上面的例子中,反馈和给定可以按照如下方法设置图4 .反馈范围设置图5 .给定范围设置file://D:\TEMP\~hh3A6D.htm 存储卡Page 27 of 58PID自整定新的S 7 2 0 0S M A R TC P U 支持P I D 自整定功能,在S T E P7 M i c r o / W I NS M A R T 中也添加了P I D 调节控制面板。 用户可以使用用户程序或P I D 调节控制面板来启动自整定功能。在同一时间最多可以有8 个P I D 回路同时进行自整定。P I D 调节控制面板 也可以用来手动调试老版本的(不支持P I D 自整定)C P U 的P I D 控制回路。 用户可以根据工艺要求为调节回路选择快速响应、中速响应、慢速响应或极慢速响应。P I D 自整定会根据响应类型而计算出最优化的比 例、积分、微分值,并可应用到控制中。PID调节控制面板 S T E P7 M i c r o / W I NS M A R T 中提供了一个P I D 控制面板,可以用图形方式监视P I D 回路的运行,另外从面板中还可以启动、停止自整定功 能。图1 .P I D 调节控制面板 在图1 中: a .当前设定值指示 显示当前使用的设定值 b .过程值指示 显示过程变量的值 c .当前的输出值指示 显示当前的输出值 d .可显示过程值、设定值及输出值的P I D 趋势图file://D:\TEMP\~hh3A6D.htm 存储卡Page 28 of 58图2 .图形显示区 图中: A .过程变量和设定值的取值范围及刻度 B .P I D 输出的取值范围及刻度 C .实际P C 时间 D .以不同颜色表示的设定值、过程变量及输出的趋势图 e .调节参数 这里你可以: ? 选择P I D 参数的显示:当前参数、推荐参数或手动输入值 ? 在手动调节模式下,可改变P I D 参数,并按更新P L C 按钮来更新P L C 中的参数 ? 启动P I D 自整定功能 ? 选择高级选项按钮进入高级参数设定 f .当前采样时间 指示当前使用的采样时间 g .时间选项设定 这里你可以设定趋势图的时基,时基以秒为单位 h .当前的P I D 回路号 这里你可以选择需要监视或自整定的P I D 回路 i .关闭P I D 调节面板 要使用P I D 调节控制面板,P I D 编程必须使用P I D 向导完成。PID自整定步骤 第一步:在P I D 向导中完成P I D 功能配置 要想使用P I D 自整定功能,P I D 编程必须用P I D 向导来完成第二步:打开P I D 调节控制面板,设置P I D 回路调节参数在M i c r o / W I NS M A R T 在线的情况下,从主菜单工具中点击进入P I D 调节控制面板中。在P I D 调节面板的h . 区查看已选择的P I D 回路号,在e . 区启动手动调节,调节P I D 参数并点击更新,使新参数值起作用,监视其趋势图, 根据调节状况改变P I D 参数直至调节稳定。 为了使P I D 自整定顺利进行,应当做到:l l使P I D 调节器基本稳定,输出、反馈变化平缓,并且使反馈比较接近给定 设置合适的给定值,使P I D 调节器的输出远离趋势图的上、下坐标轴,以免P I D 自整定开始后输出值的变化范围受限制参见:手动调整P I D 回路参数第三步:在e . 区点击高级选项按钮,设定P I D 自整定选项。如果不是很特殊的系统,也可以不加理会。file://D:\TEMP\~hh3A6D.htm 存储卡Page 29 of 58图3 .设置P I D 自整定高级选项 在此允许你设定下列参数: a .你可以选中复选框,让自整定来自动计算滞后值和偏值 对于一般的P I D 系统,建议使用自动选择。 b .滞后: 滞后值规定了允许过程值偏离设定值的最大(正负)范围,过程反馈在这个范围内的变化不会引起P I D 自整定调节器改变输出, 或者使P I D 自整定调节器“认为”这个范围内的变化是由于自己改变输出进行自整定调节而引起的。P I D 自整定开始后,只有过程 反馈值超出了该区域,P I D 自整定调节器才会认为它对输出的改变发生了效果。这个值用来减少过程变量的噪声对自整定的干 扰,从而更精确地计算出过程系统的自然振动频率。如果选用自动计算,则缺省值为2 %。 如果过程变量反馈干扰信号较强(噪声大)自然变化范围就大,可能需要人为设置一个较大的值。但这个值的改变要与下面的偏 差值保持1 : 4 的关系。 c .偏差: 偏差值决定了允许过程变量偏离设定值的峰峰值。如果选择自动计算该值,它将是死区的4 倍,即8 %。 有些非常敏感的系统不允许过程量偏离给定值很多,也可以人工设置为比较小的值,但是要和上述“死区”设置保持比例关系。 这就是说,一个精度要求高的系统,其反馈信号必须足够稳定。 d .初始输出步:P I D 调节的初始输出值 P I D 自整定开始后,P I D 自整定调节器将主动改变P I D 的输出值,以观察整个系统的反应。初始步长值就是输出的变动第一步变化 值,以占实际输出量程的百分比表示。 e .看门狗时间:过程变量必须在此时间(时基为秒)内达到或穿越给定值,否则会产生看门狗超时错误。 P I D 自整定调节器在改变输出后,如果超过此时间还未观察到过程反馈(从下至上或从上至下)穿越给定曲线,则超时。如果能 够事先确定实际系统响应非常慢,可以加长这个时间。 f .动态响应选项:根据回路过程(工艺)的要求可选择不同的响应类型:快、中、慢、非常慢? ? ? ?快:可能产生超调,属于欠阻尼响应 中:在产生超调的边缘,属于临界阻尼响应 慢:不会产生任何超调,属于过阻尼响应 非常慢:不会产生任何超调,属于严重过阻尼响应用户在这里指定需要达到的系统控制效果,而不是对系统本身响应快慢的判断。 g .设定完参数点击O K 键回到P I D 调节控制面板的主画面第四步:在手动将P I D 调节到稳定状态后,即过程值与设定值接近,且输出没有不规律的变化,并最好处于控制范围中心附近。此时可 点击e . 区内的启动按钮启动P I D 自整定功能,这时按钮变为停止。这时只需耐心等待,系统完成自整定后会自动将计算出的P I D 参数显 示在e . 区。当按钮再次变为启动时,表示系统已经完成了P I D 自整定。 要使用自整定功能,必须保证P I D 回路处于自动模式。开始自整定后,给定值不能再改变。file://D:\TEMP\~hh3A6D.htm 存储卡Page 30 of 58第五步:如果用户想将P I D 自整定的参数应用到当前P L C 中,则只需点击更新P L C 。 完成P I D 调整后,最好下载一次整个项目(包括数据块),使新参数保存到C P U 的E E P R O M 中。PID自整定失败的原因1 .P I D 输出在最大值与最小值之间振荡(曲线接触到坐标轴)解决方法:降低P I D 初始输出步长值 2 .经过一段时间后,P I D 自整定面板显示如下信息:“ 自整定计算因为等待反馈穿越给定值的看门狗超时而失败” 。 解决方法: 确定在启动P I D 自整定前,过程变量和输出值已经稳定。并检查看门狗时间的值,将其适当增大。 对于其它错误,可参考手册中表格1 1 -3 中的错误代码的描述。如何获得一个稳定的P I D 回路在开始P I D 自整定调整前,整个P I D 控制回路必须工作在相对稳定的状态。 稳定的P I D 是指过程变量接近设定值,输出不会不规则的变化,且回路的输出值在控制范围中心附近变化。 问题与解决方法: 1 .P I D 输出总是输出很大的值,并在这一区间内调节变化产生原因:? ?增益值太高 P I D 扫描时间太长(对于快速响应P I D 的回路)解决方法:降低增益值并且/ 或选择短一些的扫描时间 2 .过程变量超过设定值很多(超调很大)产生原因:积分时间可能太高 解决方法:降低积分时间 3 .得到一个非常不稳定的P I Dfile://D:\TEMP\~hh3A6D.htm 存储卡Page 31 of 58产生原因:? ?如果用了微分,可能是微分参数有问题 没有微分,可能是增益值太高解决方法:? ?调整微分参数到0 -1 的范围内 根据回路调节特性将增益值降低,最低可从0 . x开始逐渐增大往上调,直到获得稳定的P I D 。P I D自动/ 手动调节的无扰动切换有些工程项目中可能需要根据工艺要求在不同的时刻投入、或者退出 P I D自动控制;退出 P I D自动控制时,控制器的输出部分可以 由操作人员直接手动控制。这就是所谓的 P I D手动/ 自动切换。 P I D控制处于自动方式时,P I D控制器(S 7 2 0 0S M A R T中的 P I D调节功能)会按照 P I D算法,自动通过输出的作用使过程反馈值跟 随给定值变化,并保持稳定。这是一个自动的闭环控制系统。操作人员可以根据现场工艺的要求,改变给定(即设定值)的值。 P I D控制处于手动方式时,P I D控制器不再起自动计算的作用。这时,控制回路的输出是由操作人员手动控制、调整,由操作人员观 察现场的控制效果,从而构成人工闭环控制。 所谓 P I D自动/ 手动控制,就是看控制系统的输出是由 P I D控制器自动控制,还是由操作人员手动控制。 有些控制系统的执行机构不能承受较大的冲击,这就要求在进行 P I D自动/ 手动切换时,保持控制输出的稳定。这就是要求无扰动切 换。 为了达到 P I D自动/ 手动控制的无扰动切换,需要在编程时注意一些相关事项。下面分别就直接使用 P I D指令编程,和使用 P I D向 导编程两种情况作一介绍。直接使用 P I D指令编程时的 P I D自动/ 手动无扰切换 直接使用 P I D指令块编写 P I D控制程序时,可以简单地使用“调用/ 不调用”指令的方式控制自动/ 手动模式。因为 P I D指令本身已 经具有实现无扰动切换的能力,此时在 P I D指令控制环节之外编程没有多大必要。 P I D指令的 E N输入端使能(为“1 ”)时,我们认为是自动控制模式;E N输入端未使能(为“0 ”)时,我们认为是手动控制模式。 P I D指令本身有一个“能流历史状态位”,以记录指令的状态切换。在 E N端从“0 ”变为”“1 ”时,P I D指令认为这是从“手动” 模式向“自动”模式切换。P I D指令此时会自动执行一系列动作,以配合无扰动切换:l l l使设定值( S P n ) =当前过程反馈变量(P V n ) 设置上次采样过程变量(P V n 1 ) =当前过程反馈变量(P V n ) 设置积分偏差和(或所谓积分前项)(M x ) =当前输出值(M n )使设定值等于当前反馈值可以避免出现偏差,使之不存在调整的要求;当然如果有工艺要求,也可以后续调整设定值。其他的动作都 是为了使 P I D在后续的操作中不改变输出的值。 在编程时要注意:ll从自动模式向手动模式切换时,P I D指令的 E N端不再有能流,计算停止,输出值 M n不再变化。此时如果需要操作人员人工观 察控制的结果,手动控制输出量,就可以通过用户程序直接改变回路表中的输出值存储单元内容(见数据块或系统手册的相关部 分内容)。如果有必要,操作人员的操作可能要进行一些标准化换算。 为保证从手动模式向自动模式的切换无扰动,需要在手动控制时,或在切换过程中,禁止对 P I D回路表中设定值的更新,以便 切换时 P I D指令用当前过程反馈值替代设定值。切换完成后,操作人员可以调整设定值。使用 P I D向导编程时的 P I D自动/ 手动无扰切换 使用 P I D指令向导编程时,指令向导会自动调用 P I D指令,并且编写外围的控制变量标准化换算、定时采样等功能。用户在使用 P I D指令向导时,需要在用户程序中用 S M 0 . 0调用指令向导生成的子程序(如 P I D x _ C T R L子程序)。P I D向导可以生成带自动/ 手动 切换功能的子程序,这个子程序使用一个数字量点为“1 ”、“0 ”的状态来控制是否投入 P I D自动控制。 到目前为止(S T E P7 M i c r o / W I NS M A R T ),使用 P I D向导生成的子程序时,由于用户程序不能直接使用 P I D指令,它 的无扰切换能力因为隔了外壳子程序,所以受到了局限。如果对无扰切换要求比较严格,需要另外编一些程序加以处理。file://D:\TEMP\~hh3A6D.htm 存储卡Page 32 of 58考察如下 P I D控制子程序。图 1 .P I D向导生成的指令 图中: a .过程反馈量 b .设定值,实数 c .自动/ 手动控制,“1 ”= 自动,“0 ”= 手动 d .手动控制输出值,0 . 0-1 . 0之间的一个实数 e .P I D控制输出值 要实现无扰动切换,必须:l l在从自动向手动切换时,使手动输出值(V D 2 0 0 4 )等于当前的实际控制输出值; 在从手动向自动切换使,使设定值相当于当前的过程反馈值。为此,可编写类似下图所示的程序,放在 P I D控制子程序之前:图 2 .无扰切换处理程序 图中: a .自动/ 手动切换控制点 b .从自动向手动切换时,使手动输出值等于实际当前值 c .从手动向自动切换时,把当前反馈量换算为相应的给定值 上述程序中的 S c a l e _ I _ t o _ R就是量程变换指令库中的子程序,如何将该指令库导入到M i c r o / W I NS M A R T中可参见如何 将M i c r o / W I N的库文件导入到M i c r o / W I NS M A R T 中。这是为了解决过程反馈与设定值之间的换算问题。用户也可以自己编程 换算,或者根据反馈与给定的取值范围决定是否需要换算。脉宽调制(P W M )P W M提供了占空比可变周期固定的输出。P W M输出以指定频率(循环时间)启动之后将连续运行。 脉宽根据所需要的控制要求进行变 化。 占空比可表示为周期的百分比或对应于脉冲宽度的时间值。 脉宽的变化范围为 0 % (无脉冲,始终为低电平) )到 1 0 0 % (无脉 冲,始终为高电平)。 请参见下图。图1 由于 P W M输出可从 0 %变化到 1 0 0 %,因此在很多情况下,它可以提供一个类似于模拟量输出的数字量输出。 例如,P W M输出可用 于电机从静止到全速的速度,或用于阀从关闭到全开的位置控制。 P W M 功能产生一个占空比变化周期固定的脉冲输出。你可以为其设定周期和脉宽(以微秒或毫秒为单位):file://D:\TEMP\~hh3A6D.htm 存储卡Page 33 of 58l l周期:1 0 μs 到6 5 5 3 5 μs 或者2 m s 到6 5 5 3 5 m s (S 7 2 0 0S M A R TC P U支持最高 1 0 0 K H z脉冲输出) 脉宽:0 μs 到6 5 5 3 5 μs 或者0 m s 到6 5 5 3 5 m s (最低4 μs ,设置为0 μs 等于禁止输出。)P W M发生器的详细参数和例程请参见《S 7 2 0 0S M A R T系统手册》。 使用P W M 输出 S 7 2 0 0S M A R TC P U 提供三个数字量输出(Q 0 . 0 、Q 0 . 1 和Q 0 . 3 ),这三个数字量输出可以通过P W M 向导组态为P W M 输出。 为 P W M操作组态输出时,输出的周期是固定的,脉宽或脉冲占空比可通过程序进行控制。 为了简化应用中运动控制的使用,S T E P7 M i c r o / W I NS M A R T提供了“P W M向导”来组态 P W M 。 更改P W M 特性 只能使用同步更新更改 P W M波形的特性。 执行同步更新时,信号波形特性的更改发生在周期交界处,这样可实现平滑转换。 使用 S M 特殊寄存器组态控制 P W M操作 P L S指令读取存储在指定 S M存储单元的数据,并相应地对 P W M发生器进行编程。S M B 6 7控制 P W M0,S M B 7 7控制 P W M1,而 S M B 5 6 7控制 P W M2。 可以更改 P W M波形的特性,方法是修改 S M存储区中的位置(包括控制字节),然后执行 P L S指令。 可以随时禁止生成 P W M波 形,方法是将 0写入控制字节的 P W M使能位(S M 6 7 . 7 、S M 7 7 . 7或 S M 5 6 7 . 7),然后执行 P L S指令。 加载新的脉冲计数(S M D 7 2或 S M D 8 2)、脉冲宽度(S M W 7 0或 S M W 8 0)或周期时间(S M W 6 8或 S M W 7 8)时,也会在执行 P L S指 令之前置位控制寄存器中的相应更新位。 中止 P W M操作后,应经过一个周期时间,然后再重新启用 P W M通道进行操作。 如果未经过此时间就重新启用 P W M通道,则可能 因完成原始 P W M命令而导致初始脉冲出现 脉冲失真。 如果在 P W M正在执行时尝试更改 P W M的时基,则该请求将被忽略,并会出现非致命错误 ( 0 x 0 0 1 B -I L L E G A LP W MT I M E B A S E C H G )。P W M 控制寄存器的设置详见《S 7 2 0 0S M A R T 系统手册》。组态P W M 输出要为 P W M组态其中一个内置输出,请使用 P W M向导。图1 .P W M向导 使用以下方法之一打开 P W M向导: ● 在“工具”( T o o l s )菜单的“向导”( W i z a r d s )区域单击“P W M ”按钮。file://D:\TEMP\~hh3A6D.htm 存储卡Page 34 of 58● 在项目树中打开“向导”( W i z a r d s )文件夹,然后双击“P W M ”,或选择“P W M ”并按回车键。组态P W M 向导的步骤: 1 .选择脉冲发生器图2 .选择脉冲发生器 2 .必要时,更改 P W M通道的名称图3 .更改 P W M通道的名称 3 .组态 P W M通道输出时基file://D:\TEMP\~hh3A6D.htm 存储卡Page 35 of 58图4 .组态 P W M通道输出时基 4 .生成项目组件图5 .生成项目组件 5 .使用 P W M x _ R U N子例程控制 P W M输出的占空比 注意: P W M通道已硬编码:lP W M 0已分配到 Q 0 . 0 。 P W M 1已分配到 Q 0 . 1 。 P W M 3已分配到 Q 0 . 3llPWMx_RUN子程序编程 P W M x _ R U N 子程序允许您通过使用改变脉冲宽度(从0 到周期时间的脉冲宽度)来控制输出占空比。file://D:\TEMP\~hh3A6D.htm 存储卡Page 36 of 58其中: a .P W M x _ R U N 执行控制:控制脉冲发生的产生 b . C y c l e : 写入脉冲周期 c . P u l s e : 写入脉冲宽度常问问题 使用P W M 输出功能应使用什么类型的C P U ? 应使用2 4 V D C 晶体管输出的C P U 。如果使用继电器类型C P U ,P W M 输出频率不能高于继电器响应频率,即使P W M 输出频率不过高,继电器频 繁通断会影响C P U 使用寿命。 P W M 输出的幅值是多少? P W M输出的幅值为 2 4 V (高电平有效,共负端连接),若想实现输出其他电压的幅值,需自己加转换器来实现。S 7 2 0 0S M A R TC P U 的 高速输出点所在的数字量输出点可以支持 2 0 . 4- 2 8 . 8 V电压幅值。 如何强制停止P W M输出? 可以通过编程将控制字节中的使能位 S M 6 7 . 7、S M 7 7 . 7 和S M 5 6 7 . 7清零,然后执行 P L S指令,便可立即停止 P W M 0 、P W M 1 和P W M 2 输 出。 P W M 输出周期和脉宽有哪些限制? 因为限制P W M 输出的因素有两个:ll硬件输出电路响应速度的限制,对于Q 0 . 0 、Q 0 . 1 和Q 0 . 3从断开到接通为1 . 0μs ,从接通到断开3 . 0 μs,因此最小脉宽不可能小 于4 . 0μs 。 最大的频率为1 0 0 K ,因此最小周期为1 0μs 。 不论是连续脉冲,还是相对较长周期内的单个脉冲,其脉冲宽度限制都是相同的。如何改变P W M 输出的周期/ 脉冲宽度? P W M 功能可以在初始化时设置脉冲的周期和宽度,也可以在连续输出脉冲时很快地改变上述参数。可以通过使用写入S M 特殊寄存器和使 用P W M 向导两种方法更改P W M 输出的周期和脉宽。 使用写入S M 寄存器方式的操作步骤为: 1 .设置控制字节,以允许写入(或者更新)相应的参数 2 .将相应的特殊存储器写入新的周期/ 脉宽值 3 .执行P L S 指令,对P W M 发生器进行硬件设置变更 使用P W M 向导方法为:调用P W M x _ R U N 子程序,将周期值写入C y c l e 管脚,将脉宽值写入P u l s e 管脚。开环运动控制S 7 2 0 0S M A R TC P U提供运动轴(A x i so fM o t i o n )控制:内置于 C P U ,用于速度和位置控制。 C P U本体集成的三个数字量输出点(Q 0 . 0 、Q 0 . 1 、Q 0 . 3 )可通过 M i c r o / W i nS M A R T软件中的运动控制向导组态运动控制输出。 注意:高速脉冲输出操作只能在晶体管输出的 C P U上进行,不可以在继电器输出的 C P U上进行。运动轴(A x i so fM o t i o n )内置于 S 7 2 0 0S M A R TC P U的运动控制功能使用运动轴(A x i so fM o t i o n )进行步进电机和伺服电机的速度和位置控制。 S 7 2 0 0S M A R T提供3 个轴的开环位置控制所需要的功能和性能: 1 .提供高速控制,速度从每秒2 个脉冲到每秒1 0 0 , 0 0 0 个脉冲(2 H Z 到1 0 0 K H Z ); 2 .提供可组态的测量系统,既可以使用工程单位(例如英寸和厘米)也可以使用脉冲数;file://D:\TEMP\~hh3A6D.htm 存储卡Page 37 of 583 .提供可组态的反冲补偿; 4 .支持绝对、相对和手动位控方式; 5 .提供连续操作; 6 .提供多达3 2 组移动曲线,每组最多可有1 6 步; 7 .提供4 种不同的参考点寻找模式,每种模式都可对起始的寻找方向和最终的接近方向进行选择。 S 7 2 0 0S M A R TC P U运动控制输入/ 输出点定义见表 1 : 表 1 . 运动控制输入/ 输出定义 类型 信号 S T P R P S L M T + L M T 输入 Z P (零脉冲)输入可帮助建立参考点或零点位置。通常,电机驱动 器/ 放大器在电机的每一转产生一个Z P 脉冲 描述 C P U本体 I / O分配 S T P 输入可让C P U 停止脉冲输出。在位控向导中可选择您所需要的S T P 在位控向导中可被组态为I 0 . 0 操作。 I 0 . 7,I 1 . 0 I 1 . 3 R P S (参考点)输入可为绝对运动操作建立参考点或零点位置。 中的任意一个,但是同一个输入点不 L M T + 和L M T 是运动位置的最大限制。位控向导中可以组态L M T + 和L M T - 能被重复定义 输入。 C P U本体高速计数器输入可被组态为 Z P 输入 H S C 0( I 0 . 0 ) H S C 1( I 0 . 1 ) H S C 2( I 0 . 2 ) H S C 3( I 0 . 3 ) Axis0 P0 输出 P 1 D I S P0和P 1 是源型晶体管输出,用以控制电机的运动和方向。 D I S 是一个源型输出,用来禁止或使能电机驱动器/ 放大器。 Q 0 . 0 Q 0 . 2 Q 0 . 4 Axis1 Q 0 . 1 Q 0 . 7o r Q 0 . 3 * Q 0 . 5 Axis2 Q 0 . 3 Q 1 . 0 Q 0 . 6Z P ( H S C )* 如果A x i s 1 组态为脉冲加方向,则P 1 分配到Q 0 . 7 。如果A x i s 1 组态为双向输出或者A / B 相输出,则P 1 被分配到Q 0 . 3 ,但此时A x i s 2 将不能 使用。 M i c r o / W I NS M A R T为运动控制提供了方便快捷的工具,遵守以下步骤即可: 1 .组态 A x i so fM o t i o n: M i c r o / W I NS M A R T提供了运动控制向导,可生成组态/ 曲线表和位控指令。 详细信息参看:位置控制向导 2 .测试 A x i so fM o t i o n: M i c r o / W I NS M A R T提供一个运动控制面板,用以测试输入输出的接线、A x i so fM o t i o n的组态以及运动曲线的运行。 详细信息参看:运动控制面板 3 .创建 C P U执行程序: 位控向导自动生成位控指令。您可以将这些指令插入您的程序中。将以下指令插入您的用户程序当中: -要使能位控模块,请插入一个A X I S x _ C T R L 指令。用S M 0 . 0 (始终接通)以确保这条指令在每一个循环周期中都得到执行。 -要将电机移动到一个指定位置,使用一条A X I S x _ G O T O 指令或一条A X I S x _ R U N 指令。A X I S x _ G O T O 指令使电机运动到您在程序中输 入的指定位置。A X I S x _ R U N 指令则使电机按照您在位控向导中所组态的路线运动。 -要使用绝对坐标进行运动,您必须为您的应用建立零位置。使用一条A X I S x _ R S E E K 或一条A X I S x _ L D P O S 指令建立零位置。 -位控向导生成的其它指令为典型应用提供需要的功能,对于您的特定应用,这些指令是可选的。 详细信息参看:程序编制 4 .编译您的程序并将系统块、数据块和程序块下载到 S 7 2 0 0S M A R TC P U中。运动控制向导1 .打开“运动控制”向导,“工具”& “向导”& “运动控制”file://D:\TEMP\~hh3A6D.htm 存储卡Page 38 of 58图 1 . 打开“运动控制”向导 2 .选择需要配置的轴图 2 . 选择需要配置的轴 3 .为所选择的轴命名file://D:\TEMP\~hh3A6D.htm 存储卡Page 39 of 58图 3 . 为所选择的轴命名 4 .输入系统的测量系统(“工程量”或者“脉冲数/ 转”)图 4 . 选择测量系统 a . 选择工程单位或者是脉冲数; b . 选择电机每转脉冲数; c . 选择基本单位; d . 输入电机每转运行距离 5 .设置脉冲方向输出file://D:\TEMP\~hh3A6D.htm 存储卡Page 40 of 58图 5 . 设置脉冲方向输出 a . 设置有几路脉冲输出(单相:1 路、双向:2 路、正交:2 路); b . 设置脉冲输出极性和控制方向。 6 .分配输入点图 6 . 配置正限位输入点 a . 正限位使能; b . 正限位输入点; c . 指定相应输入点有效时的响应方式; d . 指定输入信号有效电平(低电平有效或者高电平有效)。file://D:\TEMP\~hh3A6D.htm 存储卡Page 41 of 58图 7 . 配置负限位输入点 a . 负限位使能; b . 负限位输入点; c . 指定相应输入点有效时的响应方式; d . 指定输入信号有效电平(低电平有效或者高电平有效)。图 8 . 配置参考点 a . 使能参考点; b . 参考点输入点; c . 指定输入信号有效电平(低电平有效或者高电平有效)。file://D:\TEMP\~hh3A6D.htm 存储卡Page 42 of 58图 9 . 配置零脉冲 a . 使能零脉冲: b . 零脉冲输入点。图 1 0 . 配置停止点 a . 使能停止点; b . 停止输入点; c . 指定相应输入点有效时的响应方式; d . 指定输入信号有效电平(低电平有效或者高电平有效)。注意:关于输入点的分配与定义请参看 7 .定义输出点运动控制输入/ 输出定义file://D:\TEMP\~hh3A6D.htm 存储卡Page 43 of 58图 1 1 . 定义输出点 注意:每个轴的输出点都是固定的用户不能对其进行修改,但是可以选择使能/ 不使能 D I S 。 关于输出点的定义请参看 运动控制输入/ 输出定义 8 .定义电机的速度图 1 2 . 定义电机的速度 a . 定义电机运动的最大速度“M A X _ S P E E D ”; b . 根据定义的最大速度,在运动曲线中可以指定的最小速度; c . 定义电机运动的启动/ 停止速度“S S _ S P E E D ” 。 9 .定义点动参数file://D:\TEMP\~hh3A6D.htm 存储卡Page 44 of 58图 1 3 . 定义点动参数 a . 定义点动速度“J O G _ S P E E D ”(电机的点动速度是点动命令有效时能够得到的最大速度); b . 定义点动位移“J O G _ I N C R E M E N T ”(点动位移是瞬间的点动命令能够将工件运动的距离)。 注意:当 C P U收到一个点动命令后,它启动一个定时器。如果点动命令在0 . 5 秒到时之前结束,C P U则以定义的S S _ S P E E D 速 度将工件运动J O G _ I N C R E M E N T 数值指定的距离。当0 . 5 秒到时时,点动命令仍然是激活的,C P U加速至J O G _ S P E E D 速度。继续运动 直至点动命令结束, 随后减速停止。 1 0 .加/ 减速时间设置图 1 4 . 加/ 减速时间设置 a . 设置从启动/ 停止速度“S S _ S P E E D ”到最大速度“M A X _ S P E E D & 的加速度时间“A C C E L _ T I M E ”; b . 设置从最大速度“M A X _ S P E E D ”到启动/ 停止速度“S S _ S P E E D ”的减速度时间“D E C E L _ T I M E”。 1 1 .定义反冲补偿file://D:\TEMP\~hh3A6D.htm 存储卡Page 45 of 58图 1 5 . 定义反冲补偿 注意:反冲补偿为当方向发生变化时,为消除系统中因机械磨损而产生的误差,电机必须运动的距离。反冲补偿总是正值。 (缺省= 0 ) 1 2 .使能寻找参考点位置图 1 6 .使能寻找参考点位置 注意:若您的应用需要从一个绝对位置处开始运动或以绝对位置作为参考,您必须建立一个参考点(R P )或零点位置,该点将 位置测量固定到物理系统的一个已知点上。 1 3 .设置寻找参考点位置参数file://D:\TEMP\~hh3A6D.htm 存储卡Page 46 of 58图 1 7 . 设置寻找参考点参 a . 定义快速寻找速度“R P _ F A S T ”(快速寻找速度是模块执行R P 寻找命令的初始速度,通常R P _ F A S T 是M A X _ S P E E D 的2 / 3 左右); b . 定义慢速寻找速度“R P _ S L O W ”(慢速寻找速度是接近R P 的最终速度,通常使用一个较慢的速度去接近R P 以免错过,R P _ S L O W 的 典型值为S S _ S P E E D ); c . 定义初始寻找方向“R P _ S E E K _ D I R ”(初始寻找方向是R P 寻找操作的初始方向。通常,这个方向是从工作区到R P 附近。限位开 关在确定R P 的寻找区域时扮演重要角色。当执行R P 寻找操作时,遇到限位开关会引起方向反转,使寻找能够继续下去,默认方向 = 反向); d . 定义最终参考点接近方向“R P _ A P P R _ D I R ”,(最终参考点接近方向是为了减小反冲和提供更高的精度,应该按照从R P 移动到 工作区所使用的方向来接近参考点,默认方向= 正向)。 1 4 .设置参考点偏移量图 1 8 . 设置参考点偏移量 注意:参考点偏移量“R P _ O F F S E T 是”在物理的测量系统中R P 到零位置之间的距离,缺省= 0 。 1 5 .设置寻找参考点顺序file://D:\TEMP\~hh3A6D.htm 存储卡Page 47 of 58图 1 9 . 设置寻找参考点顺序 S 7 2 0 0S M A R T提供4 中寻找参考点顺序模式,每种模式定义如下: R P 寻找模式1 :R P 位于R P S 输入有效区接近工作区的一边开始有效的位置上; R P 寻找模式2 :R P 位于R P S 输入有效区的中央; R P 寻找模式3 :R P 位于R P S 输入有效区之外,需要指定在R P S 失效之后应接收多少个Z P (零脉冲)输入; R P 寻找模式4 :R P 通常位于R P S 输入的有效区内,需要指定在R P S 激活后应接收多少个Z P (零脉冲)输入。 关于寻找参考点模式的详细信息请参考: 《S 7 2 0 0S M A R T系统手册》 1 6 .新建运动曲线并命名图 2 0 . 新建运动曲线并命名 通过点击“添加(A d d )”按钮添加移动曲线并命名。 注意:S 7 2 0 0S M A R T支持最多3 2 组移动曲线。运动控制向导提供移动曲线定义,在这里,您可以为您的应用程序定义每一个 移动曲线。运动控制向导中可以为每个移动曲线定义一个符号名,其做法是您在定义曲线时输入一个符号名即可。 1 7 .定义运动曲线file://D:\TEMP\~hh3A6D.htm 存储卡Page 48 of 58图 2 1 . 定义运动曲线 a . 选择移动曲线的操作模式(支持四种操作模式:绝对位置、相对位置、单速连续旋转、两速连续转动); b . 定义该移动曲线每一段的速度和位置(S 7 2 0 0S M A R T每组移动曲线支持最多1 6 步)。 1 8 .为配置分配存储区图 2 2 . 为配置分配存储区 通过点击“建议(S u g g e s t )”按钮分配存储区 注意:程序中其他部分不能占用该向导分配的存储区。 1 9 .完成组态file://D:\TEMP\~hh3A6D.htm 存储卡Page 49 of 58图 2 3 . 向导生成的组件 当您完成对运动控制向导的组态时,只需点击生成(G e n e r a t e ),然后运动控制向导会执行以下任务: a .将组态和曲线表插入到您的 S 7 2 0 0S M A R TC P U的数据块(A X I S x _ D A T A )中; b .为运动控制参数生成一个全局符号表(A X I S x _ S Y M ); c .在项目的程序块中增加运动控制指令子程序,您可在应用中使用这些指令; 要修改任何组态或曲线信息,您可以再次运行运动控制向导。 注意:由于运动控制向导修改了程序块、数据块和系统块,要确保这三种块都下载到 S 7 2 0 0S M A R TC P U中。否则,C P U可能 会无法得到操作所需的所有程序组件。 2 0 .查看输入输出点分配图 2 4 . 输入输出点分配 完成配置后运动控制向导会显示运动控制功能所占用的 C P U本体输入输出点的情况。使用运动控制面板进行调试为了帮助用户更好的开发 S 7 2 0 0S M A R T的运动控制功能,S T E P 7M i c r o / W I NS M A R T提供了一个调试界面“运动控制面板”。通过 “操作界面、配置参数界面和配置曲线参数界面”,可以帮助用户方便地调试、操作和监视S 7 2 0 0S M A R T的工作状态,验证控制系统file://D:\TEMP\~hh3A6D.htm 存储卡Page 50 of 58接线是否正确,调整配置运动控制参数,测试每一个预定义的运动轨迹曲线。 注意:使用运动控制面板之前请确保已经完成以下操作: a . 将运动控制向导生成的所有组件(包括程序块、数据块和系统块)下载到 C P U中。否则 C P U无法得到操作所需要的有 效程序组件; b . 将 C P U的运行状态设置为“S T O P ” 。 步骤一:打开运动控制面板。 1 .通过菜单栏或者左侧树形目录打开“运动控制面板”图 1 . 打开“运动控制面板” 2 .点击“运动控制面板”按钮,会弹出一个对话框,其作用是比较 S T E P 7M i c r o / W I NS M A R T当前打开的程序与 C P U中的程序是 否一致(如图 2 所示)。当程序比较通过后点击“继续”按钮(若未通过请重新下载程序块、数据库和系统块至 C P U )。图 2 . 程序比较对话框 步骤二:在“操作”界面中监视和控制运动轴 “操作”界面允许用户以交互的方式,非常方便地操作、控制运动轴。该界面友好地显示当前设备运行速度、位置和方向信息,监控 到输入、输出点状态信息。“操作”界面如图3 所示:file://D:\TEMP\~hh3A6D.htm 存储卡Page 51 of 58图 3 . 运动控制面板“操作”界面 1 .选择“激活D I S 输出”, 点击“执行”,使能电机驱动器.图 4 . 激活“D I S ”输出 2 .选择“执行连续速度移动”,可以使电机连续运转.file://D:\TEMP\~hh3A6D.htm 存储卡Page 52 of 58图 5 . 连续速度运转指令 a . 输入目标速度; b . 输入目标方向; c . 点击“启动”,执行连续速度运转指令; d . 点击“停止”,终止连续速度运转指令; e . 点击“点动 + ”按钮执行正向点动命令,点击“点动 ”按钮执行负向点动命令,点击时间超过0 . 5 秒电机会加速到点动速度 (J O G _ S P E E D )。 3 .选择“查找参考点 ”,点击“执行”,可以完成寻找机械坐标系参考点的操作。图 6 . 寻找参考点指令 4 .选择“执行曲线”,可以完成配制运动轨迹曲线的操作。file://D:\TEMP\~hh3A6D.htm 存储卡Page 53 of 58图 7 . 执行运动曲线指令 通过下拉列表选择已组态曲线的符号名,点击“执行”,运行指定曲线。 步骤三:在“组态”界面中显示、修改运动控制参数 在“组态”界面中,可以帮助用户方便地监控、修改存储在 S 7 C2 0 0C P U数据块中的配置参数信息。 修改过组态设置以后,只需要 先点击“允许更新P L C 中的轴组态” ,再点击“写入”即可。图 8 . 组态界面 步骤四:在“曲线组态”界面修改已组态的曲线参数并更新到C P U 中 用户可以使能更新C P U 中的轴组态功能file://D:\TEMP\~hh3A6D.htm 存储卡Page 54 of 58图 9 . 使能曲线组态信息图 1 0 . 读取/ 修改曲线信息 用户可以通过点击“读取”,读取 C P U中存储的已组态的曲线信息,点击“写入”可以将修改后的曲线信息更新到C P U 中。运动控制向导为运动轴创建的指令运动向导根据所选组态选项创建唯一的指令子程序,从而使运动轴的控制更容易。 各运动指令均具有“A X I S x _ ”前缀,其中 x代表 轴通道编号。 由于每条运动指令都是一个子程序,所以 1 1条运动指令使用 1 1个子程序。 说明:运动指令使程序所需的存储空间增加多达 1 7 0 0个字节。 可以删除未使用的运动指令来降低所需的存储空间。 要恢复删除 的运动指令,只需再次运行运动向导。 表 1 . 运动控制指令file://D:\TEMP\~hh3A6D.htm 存储卡Page 55 of 58指令名称 A X I S x _ C T R L A X I S x _ M A N A X I S x _ G O T O A X I S x _ R U N A X I S x _ R S E E K A X I S x _ L D O F F A X I S x _ L D P O S A X I S x _ S R A T E A X I S x _ D I S A X I S x _ C F G A X I S x _ C A C H E指令功能 启用和初始化运动轴 手动模式 命令运动轴转到所需位 置 运行包络 搜索参考点位置 加载参考点偏移量 加载位置 设置速率 使能/ 禁止D I S 输出 重新加载组态 缓冲包络详细的运动控制指令介绍请参考:S 7 2 0 0S M A R T系统手册 运动控制指令使用准则 必须确保在同一时间仅有一条运动指令激活。 可在中断例程中执行 A X I S x _ R U N和 A X I S x _ G O T O 。 但是,如果运动轴正在处理另一命令时,不要尝试在中断例程中启动指令。 如果 在中断程序中启动指令,则可使用 A X I S x _ C T R L指令的输出来监视运动轴是否完成移动。 运动向导根据所选的度量系统自动组态速度参数(S p e e d和 C _ S p e e d )和位置参数(P o s或 C _ P o s )的值。 对于脉冲,这些参数为 D I N T值。 对于工程单位,这些参数是所选单位类型对应的 R E A L值。例如: 如果选择厘米 ( c m ) ,则以厘米为单位将位置参数存储 为 R E A L值并以厘米/ 秒 ( c m / s e c )为单位将速度参数存储为 R E A L值。 有些特定位置控制任务需要以下运动指令:l要在每次扫描时执行指令,请在程序中插入 A X I S x _ C T R L指令并使用 S M 0 . 0触点。 要指定运动到绝对位置,必须首先使用 A X I S x _ R S E E K或 A X I S x _ L D P O S指令建立零位置。 要根据程序输入移动到特定位置,请使用 A X I S x _ G O T O指令。 要运行通过位置控制向导组态的运动包络,请使用 A X I S x _ R U N指令。lll其它位置指令为可选项。 常用运动控制指令介绍 1 .A X I S x _ C T R L 功能:启用和初始化运动轴,方法是自动命令运动轴每次 C P U更改为 R U N模式时加载组态/ 包络表。图 1 .A X I S x _ C T R L 指令 注意: 在您的项目中只对每条运动轴使用此子例程一次,并确保程序会在每次扫描时调用此子例程。使用 S M 0 . 0 (始终开启)作为 E N 参数的输入。 M O D _ E N参数必须开启,才能启用其它运动控制子例程向运动轴发送命令。 如果 M O D _ E N参数关闭,运动轴会中止所有正在进行 的命令; D o n e 参数会在运动轴完成任何一个子例程时开启; E r r o r 参数存储该子程序运行时的错误代码; C _ P o s 参数表示运动轴的当前位置。 根据测量单位,该值是脉冲数 ( D I N T )或工程单位数 ( R E A L ) ;}

我要回帖

更多关于 PLC编程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信