西门子模块6ES341-1CH02-0AE0
西门子PLC S7-300与S7-200Smart DP01之间的MPI通信
S7-200 SMART PLC 通过EM DP01 模块与 S7-300 PLC之间采用 MPI 通讯方式时,S7-200 SMART PLC 中不需要编写任何与通讯有关的程序,只需要将要交换的数据整理到一个连续的V 存储区当中即可,而S7-300 PLC中需要在组织块OB1(或是定时中断组织块OB35)当中调用系统功能X_GET(SFC67)和X_PUT(SFC68),以实现S7-200 SMART PLC 与 S7-300 PLC之间的通讯。
S7-300 PLC调用 SFC67 和 SFC68 时,该系统功能的"VAR_ADDR" 参数需要填写S7-200 SMART PLC侧数据地址区。由于S7-200 SMART PLC 的数据区为 V 区,如果这个参数填写为 P#DB1.DBX×× BYTE n 则对应的就是S7-200 SMART PLC侧VB×× ~ VB(××+n -1)的数据区。 例如交换的数据存在S7-200 SMART PLC 中 VB50 到 VB59 这10个字节当中,则“VAR_ADDR"参数应为 P#DB1.DBX50.0 BYTE 10。首先根据S7-300的硬件配置,在STEP7当中组态S7-300站并且下载,注意S7-300出厂默认的MPI地址是2,需要保证DP 01模块站地址与S7-300 地址不冲突。例子程序当中将S7-300 MPI地址设定为2,DP01 地址通过外部拨码设定3,另外DP01 模块自支持自适应波特率,S7-300侧可以根据实际需要设置波特率。
S7-200 SMART侧 组态
S7-300 CPU 在 Step7 平台下组态
S7-300 CPU 在 TIA 平台下组态
S7-200 SMART 组态
S7-200 SMART系统中需根据 EM DP 01模块所在的实际位置在系统块中添加EM DP01模块,但添加的DP01 模块无需再进行其他设置,本例中DP01模块紧邻CPU,MPI地址通过DP01模块外部拨码开关进行调节。系统块设置如下图:
S7-300 CPU 在 Step7 平台下组态
S7-300 PLC修改MPI地址可以参考下图:
例子程序在OB1当中调用数据读写功能块:SFC67和SFC68,如下图所示:
分别在 STEP 7-MicroWIN SMART 和STEP7当中监视S7-300 PLC和 S7-200 SMART PLC当中的数据,数据监视界面如下:
S7-300 CPU 在 TIA 平台下组态
S7-300 PLC修改MPI地址可以参考下图:
例子程序在OB1当中调用数据读写功能块:X_PUT和X_GET。
西门子卡件6ES7314-6BH04-0AB0
组态WinCC项目
(A) 由于SOAP仅识别PC名称,所以需要在lmhosts文件(%SystemRoot%\Windows\System32\drivers\etc)中定义IP地址和与之匹配的设备名称。在本例中,在lmhosts文件中输入"KP700_Comf "。
(B) 打开TIA Portal V11创建新项目,选择HMI设备为KP700 Comfort,在设备的Runtime settings – Services – Read/write tags中选择 Web service SOAP,如图9所示。
图9
(C) 组态KP700的IP地址为,创建测试变量Tag_01~Tag_04。
(D) 打开KP700 Comfort Panel的Control Panel – System,设置Device Name为KP700_Comf。
3.3 配置Excel文件
(A) 如果办公室PC上安装的是Excel 2003,则直接打开附件中的Soap-Calls.xls,
(B) 如果办公室PC上安装的是Excel 2010,打开附件中的Soap-Calls.xls时会报错,这是由于VBA代码所引用的SOAP对象库的版本较低,需要在安装了Excel 2003的PC上拷贝mssoap1.dll、wisc10.dll和mssoapr.dll到本机相同目录下,并在DOS命令行中以Regsvr32.exe(%SystemRoot%\Windows\System32)注册上述三个文件。
注意:由于MS SOAP Toolkit V2.0对于Windows 7的支持限制,本例在64位的Windows 7 SP1上测试无法通过。
(C)在“开发工具"下选择Visual Basic,打开VBA的编程界面,选择“工具"-“引用",选择引用SOAP组件,如图10所示。
图10
(D) 根据需要在工作簿和VBA中修改相应的变量名称和代码,如图11所示。
图11
在数字系统中,各种数据要转换为二进制代码才能进行处理,而人们习惯于使用十进制数,所以在数字系统的输入输出中仍采用十进制数,这样就产生了用四位二进制数表示一位十进制数的方法,这种用于表示十进制数的二进制代码称为二-十进制代码(Binary Coded Decimal),简称为BCD码。它具有二进制数的形式以满足数字系统的要求,又具有十进制的特点(只有十种有效状态)。在某些情况下,计算机也可以对这种形式的数直接进行运算。常见的BCD码表示有以下几种。 8421BCD编码 这是一种使用广的BCD码,是一种有权码,其各位的权分别是(从有效高位开始到低有效位)8,4,2,1。 例 写出十进数563.97D对应的8421BCD码。 563.97D=1 . BCD 例 写出8421BCD码421BCD对应的十进制数。 421BCD=. BCD=69.58D 在使用8421BCD码时一定要注意其有效的编码仅十个,即:0000~1001。四位二进制数的其余六个编码,不是有效编码。 2421BCD编码 2421BCD码也是一种有权码,其从高位到低位的权分别为2,4,2,1,其也可以用四位二进制数来表示一位十进制数。其编码规则如下表。 余3码 余3码也是一种BCD码,但它是无权码,但由于每一个码对应的8421BCD码之间相差3,故称为余3码,其一般使用较少,故正须作一般性了解,具体的编码如下表。 常见BCD编码表 十进制数 8421BCD码 2421BCD码 余3码 0 0000 0000 0011 1 0001 0001 0100 2 0010 0010 0101 3 0011 0011 0110 4 0100 0100 0111 5 0101 1011 1000 6 0110 1100 1001 7 0111 1101 1010 8 1000 1110 1011 9 1001 1111 1100 10 0001,,,0011 非压缩式和压缩式: BCD又分为两种,非压缩式和压缩式两种。 前面这种81秒存成 “08,01” 是非紧密式,而紧密式会存成 “81h” (直接以十六进制储存)。 非压缩的BCD码只有低四位有效,而压缩的BCD码则将高四位也用上了,就是说一个字节有两个BCD码。 BCD是用0和1表示十进制,如0000表示0,0001表示1,0010表示2,举例子1234表示成000,而压缩的bcd是用00表示0,01表示1,10表示2,110表示3等,但压缩的BCD并不固定,可看情况而定,所要的就是用少的位数表示尽可能多的数。 |