此次主要跟大家分享的是关于西门子S7-200PLC与6RA70装置的连接,究竟如何来实现,现在就来详细讲解讲解:
一、S7-200PLC与6RA70装置连接
1.系统要求
安装MicroWin software(V3.2以上)以及 USS协议库(V2.0以上)
PC/PPI电缆、S7-200(如CPU 226XM)、电源模块、通信电缆
6RA70驱动装置及一台PC机
2.在使用MicroWin software 创建项目之前,先检查USS protocol协议是否被正确安装,此协议库需要单独购买:
![62f14c030e1da89f7f0bac4fe86e8f1d.png](https://i-blog.csdnimg.cn/blog_migrate/b2ac16105376982dd79533f68de06a2e.jpeg)
3.我们需要创建一个简单的例程:
第一步:设置通讯接口
![c7bc998a36df8cc195a57c6be061d60f.png](https://i-blog.csdnimg.cn/blog_migrate/acd2794afba42d78b000d2cd1402620a.jpeg)
第二步:建立PC与S7-200PLC之间连接(注意:PC通过PC/PPI电缆与S7-200PORT1口连接)
![0913af2396ca20051c451c7d03a54279.png](https://i-blog.csdnimg.cn/blog_migrate/1ea4649f4ad31d0bb584586db53e665b.jpeg)
第三步:用串口电缆将S7-200PORT0端口与6RA70的PMU上X300、CUD1端子X172或CUD2端子X162相连 (注意:端口连接的规则,X300是3对3、8对8;CUD1端子X172是3对X172:58,8对X172:59;CUD2端子X162是3对X162:63,8对X162:64)
第四步:使用USS协议的初始化模块初始化S7-200的PORT0端口
![ba448b5577a942ddfec19f6957b56bce.png](https://i-blog.csdnimg.cn/blog_migrate/b722d27992af739bc4b816ddf0f5e2e1.jpeg)
二进制值2#1000 0000 0000表示要初始化USS地址11的6RA70驱动装置,波特率为9600,此波特率值要与PC/PPI电缆的设置相同,详细情况请参看USS_INIT的帮助文件;此外我们还需要在6RA70装置上设置相应的参数。
表一:
![66c382e982d722b93fb001b19aa57f7c.png](https://i-blog.csdnimg.cn/blog_migrate/5ac52d8b89b1de339a803ba3aa89fb1e.jpeg)
第五步:使用USS_CTRL模块来控制USS地址11的6RA70装置,为了运行6RA70需要按照表一设置参数
![57a91a96f6888c49b6aab8034a2546aa.png](https://i-blog.csdnimg.cn/blog_migrate/7dc82df2acee5f76f8140e6685a00134.jpeg)
![27cd7484066a45d5e11032796159ce88.png](https://i-blog.csdnimg.cn/blog_migrate/56f988bc30daf37879654e9cb8f84525.jpeg)
![6164f1d20d2ae180a4d1b33603271db5.png](https://i-blog.csdnimg.cn/blog_migrate/831180fb6fca5d0b95b65403984a85ea.jpeg)
第六步:在编译程序之前,选择 Program Block -> Library then right mouse click: select Library Memeory. 在点击Suggested Address选择V存储区的地址后点击 “OK”退出,如下图所示:
第七步:编译程序并下载到S7-200,将RUN位置1,并在状态表中输入速度给定,在闭合CUD1端子X172:37和X172:38之后,6RA70直流装置就可以运行起来了,如下图状态表所示:(注意:由于MM440和6RA70的工作方式和控制字的定义并不完全相同,所以你需要将OFF2、OFF3、F_ACK命令位连接到6SE70相应的参数,它们才能起作用;此外,由于控制字的定义不相同,DIR方向控制位并不能起到方向控制的作用;详细情况请参看USS_CTRL的帮助文件及6RA70控制字的定义,在本例中将RUN信号连接到6RA70脉冲使能控制参数P661,而将速度给定连接到主给定参数P644)
![ceeb629de3222f792156ad54cde294c9.png](https://i-blog.csdnimg.cn/blog_migrate/6d6b4bb7b2041d63d140adbdc9a06214.jpeg)
![41db75edaa705e407bbc4219fa87000a.png](https://i-blog.csdnimg.cn/blog_migrate/36092a5ab921c13f6f2895f49989eec1.jpeg)
![6f64def2c9287269d9954d8e4c8144a5.png](https://i-blog.csdnimg.cn/blog_migrate/3c5f0e0966c13227be7bcdc99b22ee43.jpeg)
4. 读写O2类型参数:如读写参数P078,使用USS_RPM_W和USS_WPM_W(这两个功能块用来读写16位无符号整数)
读参数P078,其数据类型为O2,表示16位无符号整数;其程序块如下图所示:
![8a309d4d6eca1f79f7a638a6ae2ac363.png](https://i-blog.csdnimg.cn/blog_migrate/09b31e515be1e6154ae8474df93df094.jpeg)
在运行此程序块的情况下,只要给S7-200的I0.3置一个上升沿,就可以完成一次对参数P078的读操作,读入的值被保存到R_P078。需要特别注意的是USS_RPM_W的INDEX值必须置1,因为MM440默认的是PXXXX.0参数组,而6RA70默认的是PXXX.1参数组,写参数P078,其程序块如下图所示
![cb3783161dfbdaeb00028b9b016edb77.png](https://i-blog.csdnimg.cn/blog_migrate/a8516a9fe9f26ae74f061d60880c0914.jpeg)
在运行此程序块的情况下,只要给S7-200的I0.4置一个上升沿,就可以完成一次对参数P078的写操作,将W_P078中保存的值写入到参数P078。USS_WPM_W的EEPROM是逻辑“0”时,写入的值只被保存到6RA70的RAM中,当EEPROM是逻辑“1”时,写入的值同时被保存到6RA70的RAM和EEPROM中,但向EEPROM中写数据是有次数限制,最多不要超过50000次。
读写参数P078的操作请参照如下的状态表所示:
![5e4700682216dd67620317d4e1ec68ea.png](https://i-blog.csdnimg.cn/blog_migrate/e737700006be75c5a1787237a866cda0.jpeg)
5. 读写I2类型参数:如读写参数P320,使用USS_RPM_W和USS_WPM_W(这两个功能块用来读写16位无符号整数)
读参数P320,其数据类型为I2,表示16位有符号整数;其程序块如下图所示:
![68236cfe47dc983e8a0d8c8d11deb817.png](https://i-blog.csdnimg.cn/blog_migrate/047baf40ceffc608b3c7ab23f25f319f.jpeg)
在运行此程序块的情况下,只要给S7-200的I1.1置一个上升沿,就可以完成一次对参数P320的读操作,读入的值被保存到R_P320。
写参数P320,其程序块如下图所示:
![84de6612ab703fff2f5a3b93841ce0d7.png](https://i-blog.csdnimg.cn/blog_migrate/45f637c41bf05b5156f5622027cdfbd4.jpeg)
在运行此程序块的情况下,只要给S7-200的I1.2置一个上升沿,就可以完成一次对参数P320的写操作,将W_P320中保存的值写入到参数P320。
读写参数P078的操作请参照如下的状态表所示
![718277a12e42b8d1f5571fd6ad3ee8b8.png](https://i-blog.csdnimg.cn/blog_migrate/679ebd417e505deb9e8a6f528c974015.jpeg)
参数P320的数据类型是I2(16位有符号的整数),而USS功能块USS_RPM_W和USS_WPM_W是根据MM440参数数据类型的定义,用来读写16无符号的整数。因此用这两个功能块读写6RA70的I2型参数时会产生一定的问题,如参数值是正数是能够正确读写,当参数值是负数时,读写操作就无法实现了
6. 此外S7-200的USS库还包括USS_RPM_D和USS_WPM_D(这两个功能块用来读写32位无符号整数),以及USS_RPM_R和USS_WPM_R(这两个功能块用来读写浮点数)
以上,欢迎动动手分享及收藏!