[西门子] 西门子S7-1200PLC 基于AT覆盖变量的V90伺服速度控制程序

[复制链接]
查看330 | 回复0 | 2024-5-17 07:52:28 | 显示全部楼层 |阅读模式
西门子S7-1200PLC
基于AT覆盖变量的V90伺服控制程序





关于AT覆盖变量的操作请参考上篇文章:《西门子S7-1200/1500PLC的AT覆盖变量是什么意思?如何建立覆盖变量?》。


好了,AT覆盖变量基本会操作了吧?它有什么用呢?我们举个例子,用S7-1200PLC控制V90伺服电机。


S7-1200PLC与V90伺服系统的连接组态。参考:《西门子S7-1200 PLC控制V90伺服驱动器速度运行模式设备组态》。



▼ 设备和网络组态



博途软件中组态好设备与网络后,要用伺服调试软件V-ASSISTANT进行伺服参数设置。参考:《S7-1200PLC控制伺服驱动器V90PN-速度控制SIMOTICS电机,如何使用伺服调试软件进行设置?》



博途软件与伺服调试软件中设置的IP地址与PROFINET名称要一致。可以在设备组态中,右键点击伺服驱动器图标,选择“分配设备名称”。然后在新窗口中点击“更新列表”检查是不是一致,否则点击“分配名称”自动分配与伺服调试软件中一样的PROFINET名称。


▼ 检查调整PROFINET名称
两个软件中设置的IP地址与设备名称要一致



设备和网络组态完成之后,要添加报文。


为使用通信方式控制伺服电机,PLC与伺服驱动器之间必须达成符合一定规则的协议,这个协议西门子称之为“报文”。


▼西门子报文



S7-1200PLC速度模式控制伺服电机的报文为:标准报文1。添加好报文后,要记住报文的IO地址,这是通信读写的地址。


地址查找方法与添加报文时操作相似:“设备组态”→“网络视图”→点击“伺服模块图标”→“设备视图”→点击“报文”。


如下图中的地址为输入68-71;输出64-67。



▼ 设置报文的IO地址



在伺服调式软件中可以查看到西门子PROFIdrive报文1的结构与数值如下表:



▼ 报文控制软元件



由于西门子PLC的的数据结构与三菱PLC的数据结构不同,QB0与QB1组合成QW0,而QB0在QB1的左边,居高位。


小李总结为:西门子PLC的数据结构位排列顺序从右到左,字节以上排列顺序从左到右。


(三菱PLC的数据结构位、字、双字的排列顺序从右到左)。


下面引用一张网络图片,它很好的表达了西门子的数据结构。


▼ 西门子PLC数据结构



对报文控制字“STW1”、“ZSW1”的高字节与低字节要“交换位置”。


如伺服驱动器接收(PLC输出)控制字STW1为“047EH”,则:


0000(0) 0100(4)→bit15到bit8为WB0;


0111(7) 1110(E)→bit7到bit0为WB1。


如伺服驱动器发送(PLC输入)状态字ZSW1为“EB31H”,则:


1110(E) 1011(B)→bit15到bit8为WB0;



0011(3) 0001(1)→bit7到bit0为WB1。



编写程序:



1、为了建立多种数据类型的结合体,并且多次调用,我们要建立PLC数据类型(UDT)。


▼ UDT的数据类型建立



如上图所示,有bool、word两种数据类型。



▼ UDT的数据类型建立2



2、点击“设备组态”在PLC模块上右击鼠标 ,选择“属性”→“系统和时钟存储器”→“启用系统存储器字节”→“启用时钟存储器字节”。



▼启用系统和时钟存储器



3、写FB程序。



▼ FB参数



▼ 梯形图程序



上图程序段1,根据报文地址把数据传送至“报文输入”;把“报文输出”传送到报文输出地址。


上图程序段2,根据图“报文控制软元件”,报文输入状态bit3是“接通表示存在故障”;报文输入状态bit7是“接通表示存在报警”,上图两个常闭触点的串联后取反与两个常开触点的并联是等效的。把存在故障和存在报警,输出到外部声光指示器,指示出来,提醒操作者。


▼ 实际速度转换



上图为速度显示转换,16384为16进制的4000。



▼ 设定速度转换



上图为速度设定转换,16384为16进制的4000。


▼ 电机控制程序



上图紧急停止外部接线为常闭触点开关。




▼ OB1主程序



上图为OB1主程序调用FB后的程序。

感谢阅读指正,关注了解更多!




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则