关于如何使用S7-1200的USS库组建MM4\G120(USS接口CU)

分享到:
966
下一篇 >

高手分享:

有硬件齐备,组建一个由S7-1200为主站的USS网络,并展示全过程,看看为什么要用S7-1200和TIA的“魅力”。(注:其实我更喜欢使用PN组网。不过MM4也是大家常用的变频器。)

首先,看看已有的驱动系统如下:


添加两芯PB电缆、插头、终端电阻和S7-1200PLC(哪个型号均可。注:版本<3.0没有WEB服务)附加一块(*多3块)RS485模块。

每个RS485模块*多可以连接16台西门子USS驱动装置(包括MM4、G120 USS的CU/其他支持USS协议的驱动器)。

如下图:




大虾:

开始组态;编程。这里使用 TIA V11 SP2,添加了设备描述文件(GSD)
 打开 TIA (V11、V10.5均可。只不过V10.5硬件标识符不一样、功能少、适合低版本S7-1200;但好处是自带WinCC Basic)
 TIA的使用方法:就是拖拽 -  释放图标、变量。
 1、新建项目:取个名字;
 2、在设备视图中,点击黑三角,CPU中选实际的 S7-1200,和订货号一致。
 3、在通讯模块目录下,找到RS485模块,拖拽、插到和实际一样排序的“机架”上。
 4、点击CPU1,选属性。按实际局域网网络设定PLC的IP地址。
 我这里使用了一台 S7-1215C。如下图:
 

 注意:在TIA V10.5中硬件标识符不一样(功能少嘛)
 OK! 完成硬件组态。编译、保存项目。
 

 

开始编程:
 首先,点击程序块黑三角、添加新块。选组织块中的Startup启动块。目的是先把要驱动的每一个装置“声明”一下。呵呵。如下图:

打开Startup启动块。从右侧《通讯》下的《通讯处理器》找到USS。按住USS_DRIVE图标,拖拽到能流线;出现绿点,放置。会自动弹出背景数据块窗口。我这里使用了自动;但实际上可以手动,选一个大一点编号。因为,如果这个PLC要和其它的一些触摸屏?LOGO连接时;有的只能和DB1 “打交道”
 如下图:
 

和S7-200的USS库完全不一样!我这里展示一下 S7-1200 USS库的“魅力”。做一个 8/8 PZD的通讯(而不是 S7-200的只能2/2PZD) 。
 我想快速、同步读取:速度、电流、电压、转矩、DI端子、模拟量输入。
 1、连续拖入 USS_DRV图标、每一个都使用同一个 USS_DRV_DB(属于同一个RS485模块的都是同一个DB!)
 2、修改每一个的地址(可以使不连续的;但要和对应控制的MM440分配的地址一致)
 3、修改PZD长度。(我想同时读/写8/8PZD,当然改成8啦。可以是2、4、6、8)
 如下图:

注意:除了上述两项,其他都不用设置。这只是个“声明”
 实际存在几个USS驱动装置,就拖拽进来几个。
 至此,启动OB就写完了。
 顺便说一句,所有需要启动时赋值的数据、变量都写在这里。

上面的USS_DRV‘s其实只是即时的组态每一个驱动的报文;并没有真正和模块通讯!
 下面“组态”和RS485模块的通讯
 这里先说一下USS通讯:应该注意到这是异步的、总线方式的通讯。总线上,每次只能和一个驱动交换数据,等待驱动的响应。一条报文的交换时间就“很长”。所以CPU只需要定时和485模块“打交道”就可以了。
 先看一个表格:

摘自《S7-1200系统手册》
 因为我选用19200速率。选个80mS启动一次RS485模块与某一驱动装置交换一次报文就够了。
 为此,添加个新块。选OB组织块中的循环中断Cyclic_interrupt。扫描时间设定80mS。如下图:
 

 按确认后,在打开的循环中断中,拖入一个USS_PORT指令图标:
 1、输入端口PORT选硬件组态的485模块号
 2、输入端口USS_DB选上面建好的USS_DRV_DB。

在左侧PLC变量表中新加一个变量表。建几个PORT端口用的变量(注意数据类型)。如下图
 然后把它们拖到对应的端口。

这里要说明一下:因为网络、驱动装置未在线、出错时,需要看到是哪个。要把USS_DRV_DB中的扩展信息提出来。所以在USS_PORT调用后,读取USS_Extended_Error。
 至此,循环中断就写完了 

开始写主程序 组织块OB1(其实没啥可写的。呵呵)
 在写主程序之前,先为每一台USS驱动准备一个数据块DB,来接收报文。
 1、添加新块。选数据块。
 2、取个合适的名称。我选个MM440_1_DB。(**个就是MM440_2_DB... 到第N个。有窍门,看下面��
 如图:

 如果驱动很多,可以用数组的方法写在一个DB里。但要考虑 触摸屏的读取问题。
 数据块里面可按图示,添加变量(*好写好注释说明!)如下图:

你不需要反复填写DB!可以使用 Ctrl-C、Ctrl-V。复制、粘贴,然后改名称、改编号。有几个USS驱动
 就做几个。

每台USS驱动的输出数据做完了。现在开始写主程序OB1了。
 其实*好新建一个组织块OB,这样OB1“干净”
 1、从右侧拖拽一个USS_DRIVE指令进来;它会弹出背景数据块的窗口;
 2、一定要选已经建好的背景数据块DB!
 3、双击打开前面建好的;该USS驱动的数据块(如:对应地址1建立的MM440_1_DB)。准备赋值。
 如下图:

 开始赋值  其实就是 拖 - 拽 - 放。呵呵
 如下图:
 

注意:修改 输入的DRIVE地址。PZD_LEN长度(我需要=8PZD)

同理:再拖入一个USS_DRV指令到下一条语句。
 打开**个地址的 DB 同上处理。。以此类推。。
 见下图:

好了。主程序写完了。OK!
 全部编译。保存项目。
 在下载之前,先要把所有USS驱动设置一下(硬件系统见主题帖的图)
 这些是MM440,我使用DriveMonitor来设置:
 见下图: 只设置 COM口!千万别设置BOP口!

每一台USS驱动装置都设置完成后。
 可以通过TIA 下载全部程序和块到S7-1200中了。
 启动运行所有的USS装置。在TIA中,打开所有USS驱动的输出DB,点击监控按钮。
 呵呵,通过WiFi,就看到了所有的结果。
 如下图:

你可能感兴趣: 工控菜鸟园 图片 变频器 伺服 驱动技术 标准驱动 G120 S7-1200 MM440 数据库
无觅相关文章插件,快速提升流量