........dingqw1234网友在下面的帖子中希望得到多台S7-200之间通过网络读写(NETR和NETW)的通信的解决方法和实例。本人应dingqw1234网友的要求,特发此帖。在这个帖子里聊一下S7-200的通信,并特别对多台S7-200之间通过网络读写(NETR和NETW)的通信实现进行举例说明。
........dingqw1234网友的帖子:
我想用两台CPU 226CN 通讯,一台的输入点全传到另一台里怎么做 ?
http://www.gongkong.com/Forum/ForumTopic.aspx?Id=2008111022085900001
2、带编程口的通信线制作:
........先制作不带编程口的通信线,然后再找一个D型9孔母头,与其中一台PLC的D型9针公头一对一连接:1-1,2-2,3-3,4-4,5-5,6-6,7-7,8-8,9-9。PLC编程电缆(多主站电缆)连接那个D型9孔母头。这样,电脑就可以监控那台PLC了。同时,因为同时也连接到了网内所有PLC,所以也可以监控网内所有PLC。
........注意:无论是否采用西门子原装的总线电缆和接头,如果是不带编程口,那么就只能监控到1台PLC而监控不到在网的其它PLC————例如,1台PLC采用端口PORT1与其他PLC进行通信,而编程电缆连接到了这台PLC的端口PORT0,那么在电脑上是无法监控到在网的其它PLC的。因为,电脑的编程电缆的通信线3,8脚和在网的其它PLC都不存在物理连接嘛。
下面就来针对dingqw1234网友的要求做一个实例:1台CPU 226CN 作为主站,1台CPU 224XP作为从站,要把CPU 224XP的输入点数据全部传到CPU 226CN里面。
一、硬件连接:
........按照上面所说的方法,用到编程口的通信电缆把CPU 226CN和CPU 224XP的端口PORT1连接起来。当然,这个连接口可以随意组合,不过,根据不同的情况,可能会影响到程序的编制——如果同一台PLC的2个编程口的地址不同(要连接多个通信设备或不同的用途,就需要把2个通信口设置为不同的地址),那么就可能会影响到程序的编制。
二、PLC地址分配:
........编程软件TEP 7 MicroWIN分配的地址固定是0;程序中PLC的默认地址为2,这个我们要修改;因为该系统中没有其它设备,例如人机界面/触摸屏,这里就把CPU 226CN的PROT0口的地址设为1,把CPU 226CN的PROT1口的地址设为2,把CPU 224XP的PROT0口的地址设为3,把CPU 224XP的PROT1口的地址设为4。
........当然,每个PLC的2个端口可以设置为相同的地址,这样的好处是:当一个通信口坏掉时,可以插到另外一个通信口,而不用更改主站PLC的程序。
........把每个PLC的2个端口设置为不相同的地址,笔者认为这样做没有什么好处(如果你知道,请告诉笔者,多谢!),只有坏处:当一个通信口坏掉时,插到另外一个通信口,需要更改与这台PLC通信的主站PLC的程序。不过这个例子中笔者这样分配地址,是做个实验而已。
........点“设置PG/PC接口”,选中“PC/PPI Cable(PPI)”,点“属性”,在“本地连接”中选择你的编程程电缆的类型——COM1、COM2或是USB;在PPI中勾选“高级PPI”——非西门子官方电缆就不要选了,即使选了也不支持。点击“确定”——“确定”。
........把编程电缆插到每个PLC,对每个PLC设置指定的地址和设置统一的波特率——如果电缆质量不好,非原装电缆,波特率设置不要过高。先点“通信”,然后双击“双击刷新”。搜索到PLC地址后,设置好当前PLC地址。然后修改系统块中的PLC端口,按照预设的地址进行修改。最后下载系统块,把PLC相应端口设置为预设的地址。这个操作比较简单,我就不在贴图赘述了。
........把编程电缆插回到D型9孔母头。点击“通信”,取消勾选“搜索所有波特率”,然后双击“双击刷新”:
把光标移动到要监控/下载的PLC上面。如果要编226CN主站,移到地址2,如上图。
选择读还是写(本例为读),选择读几个数据(本例读2个数据,IB0-IB1;对于226CN的输入,应当读3个数据,IB0-IB2,共24个输入),选择PLC的地址(本例为4):