西门子S7-200 PLC与MACS V系统通讯说明
目前和利时的MACS V系统与西门子的PLC系统通讯比较多,本文档针对西门子的S7-200 PLC系统与MACSV系统的通讯进行介绍。
1、 系统资源
1.1西门子PLC的CPU型号,比如CPU(CPU222,或CPU224、CPU226,电源在CPU内部集成),通讯卡(必须支持DP协议,一般为EM277)。
1.2PLC的GSD文件,我们现在MACSV系统里一般包括了西门子的S7-200的GSD文件(siem089d.gsd)。
1.3DCS系统是MACS V系统(包括1.1.0,1.1.0+sp1,1.1.0+sp2)。
1.4通讯电缆最好采用专用的DP通讯线缆,如果采用普通的双绞通讯线距离短数据量少也可以通讯。
2、PLC系统侧的组态
2.1PLC侧系统 的组态,与SMARTPRO的通讯设置一样,不再具体叙述。
2.2直接将DP总线连接到EM277的DP口,设定EM277 DP从站号(要与DCS系统的站号一样)。
2.3根据所需要通讯的变量数目,双方协商设定通讯区的大小。
2.4确定通讯区的起始地址和长度,对于CPU222最大起始地址为2046,CPU226最大起始地址为5119,DCS侧的该地址由ConMaker侧组态时在参数数据中设置。
2.5PLC的通讯数据移到V变量存储区中。
3、DCS系统侧的组态
3.1设备组态
3.1.1 GSD文件:DCS测设备组态时,需要相应的GSD文件siem089d.gsd,应将此文件拷到PCBasedIO目录下,如下图:
(目前MACS V系统PCBasedIO里包括了EM277的GSD文件siem089d.gsd)
3.1.2自定义设备:
3.1.2.1打开设备组态工具,选择你的工程;
3.1.2.2在查看中点击自定义设备;
3.1.2.3在自定义设备的所属链路框中选择DP;
3.1.2.4引入GSD文件,点击引入按钮;
3.1.2.5引入EM277的GSD文件;
然后在下方出现:EM277 PROFIBUS-DP设备;
3.1.2.6对EM277设备进行定义,点击右键-定义设备;
弹出以下对话框:
3.1.2.7对设备进行定义:定义一个设备名称并对EM277设备添加模块。
3.1.2.8对EM277设备模块进行通道定义;(选中模块号0,然后点击右边的模块定义按钮),如果通讯点是开关量定义BIT,如果模拟量要定义WORD。
3.1.2.9定义结束后在EM277下出现你自己定义的模块(S7-200)。
3.1.2.10设备定义后在控制站里添加你定义的PLC模块,选中你定义的S7200PLC后加入;
3.1.2.11更改PLC的地址
3.1.2.12然后进行编译,编译成功后保存。
3.2进行工程硬件设备生成;
3.2.1打开总控:经过数据库基本编译、联编、生成下装文件后在控制器算法组态的相应站里生成MACS设备配置。
3.2.2定义和PLC通讯的虚拟内存地址:
3.3定义DCS和PLC之间的通讯变量;
3.3.1在数据总控中定义;
3.3.1.1打开数据总控,然后在数据类名中要选择BIT(开关量通讯)
3.3.1.2进行通讯点定义,也可以用导入导出功能定义数据。
3.3.1.3数据通讯点定义完毕后更新保存。
3.3.1.4在数据总控中进行全部编译,然后在CODESYS中自动生成数据库点。
3.3.1.5根据要求完成控制方案。
3.3.2在下层定义CODESYS中定义。
3.3.2.1在CODESYS中新建一个全部变量区,不要与IO变量区放在一起;
1. 3.3.2.2数据库总控中变量添加:这样添加的变量,在数据库总控联编时不会自动添加到DM变量表中,需要重新建立一组对应的变量,然后进行赋值到DM变量中。下图中的变量在数据库总控联编时会自动添加到DM变量表中,画面组态使用此部分变量。
4、注意事项
ConMaker与EM277中的地址对应关系:
QBOUT——ConMaker在硬件配置中自动分配的该模件的输出区起始地址;
IBIN —— ConMaker在硬件配置中自动分配的该模件的输入区起始地址;
V-memory —— PLC中设置的通讯区(变量存储区)的起始地址,CPU222中输入输出缓冲区的长度由I/O配置决定,下例中I/O数据均为4 word,先是输出区,输入区紧随其后。
| BYTE | ConMaker中的位置 | S7200 CPU中的位置 |
输 出 区 | 0 | QWOUT+0 | V-memory+0 |
… | … | … |
3 | QWOUT+3 | V-memory+3*2 |
输 入 区 | 0 | IWIN+0 | V-memory+8 |
… | … | … |
3 | IWIN+3 | V-memory+8+3*2 |
注意:S7200 CPU中的偏移都是相对于V区开始的字节偏移,VB、VW、VD等其中的B、W、D只是表明了从该偏移起的这个变量是字节、字或双字。这一点和ConMaker中的IW、QW有所不同,ConMaker中的IW、QW指的是对于输入输出区的“字偏移”,IB、QB指对输入输出区的“字节偏移”。
.