S7-200通信最经济的方式就是采用PPI协议和自由口
通信协议。对于S7-200之间进行通信,PPI协议又更适合——它比自由口通信的编程更简单!下面就对这个PPI通信进行说明——以2台S7-200通信为例,做一个实例。
设备配置:1台S7-200 CPU 226CN的PLC、 1台S7-200 CPU 224XP的PLC
硬件连接:原则上需要配备1条紫色的Profibus电缆、2个黑色的Profibus-DP接头。如果需要在PLC通信时对所有在线的PLC进行监控/编程操作而不占用另外的通信口(也就是说,假如所有PLC用端口PROT1进行PPI通信,而现在要对所有PLC依次编程/监控,但又不想占用这些PLC的端口PROT0——端口PROT0可能已作它用),那么必须在其中1台PLC采用带编程口的Profibus-DP接头。所以说,带编程口的Profibus-DP接头在整个网络中只需要一个就可以了。这样,也就可以在某一台PLC处对在网的其它PLC进行编程/监控。
引脚分配:
........S7--200 CPU上的通讯端口是符合欧洲标准EN 50170中PROFIBUS标准的RS--485兼容9针D型连接器。下表列出了为通讯端口提供物理连接的连接器,并描述了通讯端口的针脚分配。下面是S7-200的通信接口——D型9孔母头的引脚定义。
网络电缆的偏压电阻和
终端电阻 为了能够把多个设备很容易地连接到网络中,
西门子公司提供两种网络连接器:一种标准网络连接器(引脚分配如表7-7所示)和一种带编程接口的连接器,后者允许您在不影响现有网络连接的情况下,再连接一个编程站或者一个HMI设备到网络中。带编程接口的连接器将S7--200的所有信号(包括电源引脚)传到编程接口。这种连接器对于那些从S7--200取电源的设备(例如TD200)尤为有用。两种连接器都有两组螺钉连接
端子,可以用来连接输入连接电缆和输出连接电缆。两种连接器也都有网络偏置和终端匹配的选择开关。典型的网络连接器偏置和终端如图所示:
........处于中间节点的从站在不工作时可以断电。
PROFIBUS电缆的接法
........PROFIBUS电缆,紫色,只有两根线在里面,一根红的一根绿的,然后外面有屏蔽层,接线的时候,要把屏蔽层接好,不能和里面的电线接触到,要分清楚进去的和出去的线分别是哪个,假如是一串的,就是一根总线下去,中间不断地接入分站,这个是很常用的方法,在总线的两头的两个接头,线都要接在进去的那个孔里,不能是出的那个孔,然后这两个两头的接头,要把它们的开关置为ON状态,这时候就只有进去的那个接线是通的,而出去的那个接线是断的,其余中间的接头,都置为OFF,它们的进出两个接线都是通的(我觉得德国人真的是和我们的思维不同,我觉得应该是OFF表示关闭吧,他偏设置ON为关闭,搞不懂)。这就是线的接法,接好了线以后呢,还要用
万用表量一量,看这个线是不是通的。假如你这根线上只有一个接头,你量它的收发两个针上面的电阻值,假如是220欧姆,那么就是对的,假如你这根线已经做好了,连了一串的接口,你就要从一端开始逐个检查了。第一个单独接线的接口,是ON状态,然后你把邻近的第一个接口的开关也置为ON,那么这个接口以后的部分就断了(出口的线已经被关掉了啊~)现在测最边上,就是单线接的那个接口,之后的东西一直都是测这个接口,测它的收发两个针,和刚才一样,假如电阻是110欧姆(被并联了),那么这段线路就是通的,然后把中间刚才那个改动为ON的接口改回到OFF,然后是下一个接口改为ON,。。。。。。就这么测下去,哪个的电阻不是110欧姆了,就是那一段的线路出问题了。
........PROFIBUS网络电缆(西门子产品号:6XV1 830-0EH10),
波特率为100Kbps以下时也可使用普通双绞线(截面积不小0.22
平方毫米)。 原则上绿色接RS485信号负(对应Profibus接头的A1)、红色接RS485信号正(对应Profibus接头的B1)。当然,统一反着接也可以——绿色接RS485信号正(对应Profibus接头的B1)、红色接RS485信号负(对应Profibus接头的A1)。不要交叉就行。
Profibus-DP
现场总线电缆电缆:用于Siemens公司支持的Profibus-DP总线系统。
●能够对应12Mbps的高速传送,充分发挥PROFIBUS-DP的功能。
●
铝箔PET带和高密度编织的双层屏蔽使抗干扰性能出色,通信的传送质量稳定。
●护套使用了柔软性和耐油、耐热性能良好的无铅
聚氯乙烯混合物。
●护套的颜色以紫色(RAL001)为标准色。
........德国LAPP UNITRONICO BUS L2/FIP:实心裸铜丝导体,2芯绞合成对,芯线颜色为红+绿。 铝箔屏蔽后加裸铜丝编织,PVC外护套,阻燃,符合VDE 0472第804部份,B类试验(IEC 332.1),紫色(RAL4001)。
........传输速率决定允许的总线电缆最大长度如下:
PROFIBUS-DP 1.5MBit/s=最长200m
(SIMATIC网) 12.0MBit/s=最长100m
工厂通讯处理层 1.0MBit/s=最长200m
2.5MBit/s=最长200m
........上述参数适用于PROFIBUS-DP及PROFIBUS—FMS总线电缆。
........国产普通屏蔽电缆也可以替代PROFIBUS电缆,没有问题,实践证明是可以用的。这样说吧,使用是没有问题的,但是是要有些请提条件的,比如西门子给出的多大速率下对应多大的通讯距离,西门子DP电缆没有问题,但是国产屏蔽电缆就有可能不能用到这么长的通讯距离。要选用质量好的国产屏蔽电缆。
........为了保证信号的稳定要在DP网络的两端接电阻,3和8脚接220电阻,3和VP引脚接390电阻,8脚和DGND脚接390电阻。如果有RS485连接器,就不用自己加终端电阻,RS485连接器中已经自带终端电阻了。
.......国产屏蔽电缆抗干扰的能力应该要若一些,如果是电磁环境很差的地方,例如有交交变频系统等,建议使用profibus-dp电缆。比较重要的系统中,对通讯安全非常严格的话,建议还是使用西门子的profibus-dp电缆。
........上面是官方提到的硬件连接方式, 在实际中,我们可能因为使用情况不同(临时使用、实验使用、同一个电控柜内使用等),手边没有现成的Profibus电缆和Profibus-DP接头。那么,在这种情况下就需要自己制作了。下面就简单说一下制作方法:
1、不带编程口的通信线制作:
........有多少个PLC就买多少个D型9针公头,然后买需要长度的Profibus电缆(实在没有,买
屏蔽双绞线也可以,不过抗干扰性没那么好哟;近距离的话,随便用什么线连接都可以,哪怕是2根单股导线,也没问题)。通过电缆,把这些D型9针公头的3脚依次连接在一起,把这些D型9针公头的8脚也依次连接在一起。接线的时候注意点,不要接错了——笔者就因为疏忽大意接错线,导致查了几个小时的故障才发现接线错了(首先怀疑线错了,用万用表打,没发现问题,晕哟,可能是遇见鬼了;最后把线全拆了,重新焊接即恢复正常)。
........如果通信存在问题,那么建议把这些D型9针公头的5脚也接在一起,强制低电位相等。如果有
屏蔽线的话,就接上屏蔽线。屏蔽层接到每台设备的外壳并最后接大地。
........至于终端电阻和偏置电阻,距离短的话,就可以不接了。不过,虽然不接,也得了解其原理——终端电阻和偏置电阻如17楼图示。因为PROFIBUS的连接电缆通常采用TYPE A标准,其中的电缆阻抗值最大为165欧,390/220/390的
等效电阻是170,是为了实现
阻抗匹配。当没有通讯进行时,终端电阻可以保证信号线间的电压差。通常加载在终端的电压为5V,390/220/390使得两信号线点的电压值分别为1.95和3.05V,是理想的静态电压(
差分)。
........官方的PROFIBUS接头有进线和出线2个口,采用官方的PROFIBUS接头接线时需要注意:“首站”和“末站”都接进线。
........其实“首站”和“末站”接出也能通信的,但是为了保证通讯的稳定,“首站”和“末站”都要把终端电阻置为ON,这时如果还把“首站”和“末站”接出线,那么“首站”和“末站”都被终端掉了。所以西门子规定:“首站”和“末站”都接进线。
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都不存在物理连接嘛。
采用了不带编程口的通信线,PLC插在不是联网那个通信口上监控,只能看到1台PLC:
采用了带编程口的通信线,PLC插在联网那个通信口上监控,能看到在网的所有PLC:
不过,最好只搜索设定的波特率就可以了,不要搜索所有波特率,否则可能出现问题:
要监控在网的哪台PLC,需要打开相应的PLC程序,然后搜索出所有的PLC,再把光标置于相应的PLC上,点击“确定”。然后可以下载和监控那台PLC:
如果电脑上当前PLC程序和“通信”的当前地址的PLC的程序不同,是无法监控该PLC的。
如果电脑上当前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的程序。不过这个例子中笔者这样分配地址,是做个实验而已。
三、编程:
........针对上面的控制要求,从站CPU 224XP就不需要编程了,只需要把CPU 224XP的PROT0口的地址设为3,把CPU 224XP的PROT1口的地址设为4并下载系统块就可以了。这个步骤就不赘述了,地址设置方法请参阅对CPU 226CN的设置。
........下面是对主站CPU 226CN进行编程和系统块地址设置的步骤。该例中,采用PPI协议进行通信(比自由口通信要简单得多),而且采用指令向导来编程(比直接设置特殊存储器SMB、调用NETR和NETW指令要简单得多)。
........点“设置PG/PC接口”,选中“PC/PPI Cable(PPI)”,点“属性”,在“本地连接”中选择你的编程程电缆的类型——COM1、COM2或是USB;在PPI中勾选“高级PPI”——非西门子官方电缆就不要选了,即使选了也不支持。点击“确定”——“确定”。
........把编程电缆插到每个PLC,对每个PLC设置指定的地址和设置统一的波特率——如果电缆质量不好,非原装电缆,波特率设置不要过高。先点“通信”,然后双击“双击刷新”。搜索到PLC地址后,设置好当前PLC地址。然后修改系统块中的PLC端口,按照预设的地址进行修改。最后下载系统块,把PLC相应端口设置为预设的地址。这个操作比较简单,我就不在贴图赘述了。
........把编程电缆插回到D型9孔母头。点击“通信”,取消勾选“搜索所有波特率”,然后双击“双击刷新”:
把光标移动到要监控/下载的PLC上面。如果要编226CN主站,移到地址2,如上图。
点击“工具”——“指令向导”,选择“NETR/NETW”,点击“下一步”:
选择需要配置的操作数量(这个例子为1),点击“下一步”:
选择主站的通信口(本例为端口1),点击“下一步”:
选择读还是写(本例为读),选择读几个数据(本例读2个数据,IB0-IB1;对于226CN的输入,应当读3个数据,IB0-IB2,共24个输入),选择PLC的地址(本例为4):
说明:
如果您在配置NETR,指定以下内容:
- 数据存储在本地 PLC 中的位置。有效操作数:VB、IB、QB、MB、LB。
- 从远程 PLC 读取数据的位置。有效操作数:VB、IB、QB、MB、LB。
如果您在配置 NETW,指定以下内容:
- 数据存储在本地 PLC 中的位置。有效操作数:VB、IB、QB、MB、LB。
- 向远程 PLC 写入数据的位置。有效操作数:VB、IB、QB、MB、LB。
点击“下一步”:
至此,向导完成。
然后在组程序中调用生成的加密子程序:
然后,下载该程序到PLC中即可。
然后监控程序,如果错误输出为1,那么是有问题的,表示通信不成功。如下图,M0.1的值为1:
只有错误输出为0,通信才是成功的(网络读写成功),如下图:
通信成功以后,重站PLC的输入就被读取到主站的VB存储器中了: