通过以太网与施耐德Premium的PLC通讯的问题 ccg,2008-03-11 11:02:14
ME一直在处理通过以太网与施耐德Premium的PLC通讯的问题,一是与施耐德的Unity Pro编程软件的通讯;一是与希亚特公司的Citect SCADA监控组态软件的通讯。
Unity Pro是施耐德新推出的一套软件,简单来说可以看作之前给施耐德PLC编程的PL7软件的升级。但实际上这套软件的功能远比之前的PL7强大。而Premium系列PLC也是施耐德产品,照理说两者之间的通讯是不应该有什么问题的,但由于是第一次接触,所以还是费了不少功夫的。
第一:TSX P572634内置有以太网模块,但默认的IP地址未知,所以第一次没有办法与其通讯,打电话,得到的答案是可以先用串口通讯一次,把IP地址下载到PLC中去,但这样做一违背了我始终想用以太网通讯的初衷,二我手头没有串行的编程电缆。于是又打电话骚扰客服,后来叫来一位客服的mm过来现场和我一起解决。从她那里得知其实内置的IP地址是可以换算出来的,形式是85.16.*.*,最后两个*的部分需要将模块正面印着的Mac地址的最后两
ME一直在处理通过以太网与施耐德Premium的PLC通讯的问题,一是与施耐德的Unity Pro编程软件的通讯;一是与希亚特公司的Citect SCADA监控组态软件的通讯。
Unity Pro是施耐德新推出的一套软件,简单来说可以看作之前给施耐德PLC编程的PL7软件的升级。但实际上这套软件的功能远比之前的PL7强大。而Premium系列PLC也是施耐德产品,照理说两者之间的通讯是不应该有什么问题的,但由于是第一次接触,所以还是费了不少功夫的。
第一:TSX P572634内置有以太网模块,但默认的IP地址未知,所以第一次没有办法与其通讯,打电话,得到的答案是可以先用串口通讯一次,把IP地址下载到PLC中去,但这样做一违背了我始终想用以太网通讯的初衷,二我手头没有串行的编程电缆。于是又打电话骚扰客服,后来叫来一位客服的mm过来现场和我一起解决。从她那里得知其实内置的IP地址是可以换算出来的,形式是85.16.*.*,最后两个*的部分需要将模块正面印着的Mac地址的最后两
段从16进制转化为10进制填充进去,比如说,我的PLC的Mac最后两段是2C 3A,转换成10进制就是44和58,则我的PLC内置的IP地址就是85.16.44.58。第一个问题得到解决。
实际上我当时这个问题解决以后,只是测试通讯(PLC-set address-test connection)可以联通,而实际上仍然无法与PLC通讯,这时遇到的是第二个问题。
第二:通过以太网与PLC通讯时,选择将程序下载到PLC.传输过程一切正常,但当所有的文件下载完成后,出现一个waiting for the end of transfer的对话框,停留在界面上不会消失,这时如果不进行操作,就没有办法进行下去,而如果点cancel按钮,则会自动与PLC断开连接。但是,从PLC里上载文件的过程是正常的,这说明实际上文件已经传输到PLC中了,所以开始怀疑是不是Unity Pro在这里有bug. 不过我还是希望能够先弄清楚问题所在,因此要排除软件冲突,于是从系统中一个一个卸载软件。最后,当我把杀毒软件和防火墙卸载掉以后,waiting for the end of transfer的对话框终于消失了(之前我选择过关闭杀毒软件和防火墙并从系统进程里停止所有相关进程都不行)。根据我的实验,卡巴斯基、瑞星和江民都是会冲突的,必须卸载才可以正常通讯,其他的杀毒软件我没有测试过。
实际上我当时这个问题解决以后,只是测试通讯(PLC-set address-test connection)可以联通,而实际上仍然无法与PLC通讯,这时遇到的是第二个问题。
第二:通过以太网与PLC通讯时,选择将程序下载到PLC.传输过程一切正常,但当所有的文件下载完成后,出现一个waiting for the end of transfer的对话框,停留在界面上不会消失,这时如果不进行操作,就没有办法进行下去,而如果点cancel按钮,则会自动与PLC断开连接。但是,从PLC里上载文件的过程是正常的,这说明实际上文件已经传输到PLC中了,所以开始怀疑是不是Unity Pro在这里有bug. 不过我还是希望能够先弄清楚问题所在,因此要排除软件冲突,于是从系统中一个一个卸载软件。最后,当我把杀毒软件和防火墙卸载掉以后,waiting for the end of transfer的对话框终于消失了(之前我选择过关闭杀毒软件和防火墙并从系统进程里停止所有相关进程都不行)。根据我的实验,卡巴斯基、瑞星和江民都是会冲突的,必须卸载才可以正常通讯,其他的杀毒软件我没有测试过。
到此,Unity Pro与PLC通讯的问题解决掉了。说来简单,实际耗时一天半。一点教训,调试程序最好准备一根串行电缆,虽然速度慢一点,但是安全可靠,可以解决大部分问题。只用网线的话,心里总觉得没底,时刻害怕出问。题通讯不上。
通过Unity Pro将程序下载到PLC中,终于可以正常工作了。 接下来考虑上位的监控组态软件与PLC之间通讯。
上位软件采用澳大利亚希亚特Citect公司的Citect SCADA组态监控软件。关于这套软件不想做过多的评价,反正价格是很high。
在使用Citect与Premium通讯的时候,首先在协议选择上踌躇不前,既然采用了以太网模块,自然应该是选择以太网相关的协议了,TCPIP显然是不二选择,但是Citect软件的通讯部分在处理施耐德系列的PLC时显得很混乱,不但把施耐德旗下的PLC分开到Schneider,Modicon和Telemecanique三部分中,而且帮助文件也没有及时更新,在选择通讯协议的时候我分明选择的是TCPIP,但帮助文件直接定位到Uni-telway协议下,而Uni-telway
是一个不折不扣的串口协议。让我一次一次被误导,怀疑自己是不是选错了,然后不得不去仔细研究每个相关的协议。
后来在升级的驱动程序帮助里面到一个叫Unite的协议,这个驱动软件是不提供的,需要到希亚特网站上面去下载,在www.citect上注册一个ID并登陆进去,下载到相关驱动并按要求安装,但因为帮助文件有问题,安装了之后在协议列表里面不到Schneider automation这个选项。
的时候了解到随软件安装的Citect Knowledge base里面有升级了的详细的使用Unite协议和Premium 通过ethernet通讯的问题详解。之前我一直对这个knowledge base不屑一顾,听客服这么说就来看看,相关的文章内容如下:
/*以下英文部分引用自Citect Knowledge base*/
/*引用开始*/
Setting up Citect to talk to a Premium (or Micro) via the UNITE Protocol
Article number: Q4283
Created on: Wednesday, 18 January 2006
Product: 5.xx
-
后来在升级的驱动程序帮助里面到一个叫Unite的协议,这个驱动软件是不提供的,需要到希亚特网站上面去下载,在www.citect上注册一个ID并登陆进去,下载到相关驱动并按要求安装,但因为帮助文件有问题,安装了之后在协议列表里面不到Schneider automation这个选项。
的时候了解到随软件安装的Citect Knowledge base里面有升级了的详细的使用Unite协议和Premium 通过ethernet通讯的问题详解。之前我一直对这个knowledge base不屑一顾,听客服这么说就来看看,相关的文章内容如下:
/*以下英文部分引用自Citect Knowledge base*/
/*引用开始*/
Setting up Citect to talk to a Premium (or Micro) via the UNITE Protocol
Article number: Q4283
Created on: Wednesday, 18 January 2006
Product: 5.xx
-
-------------------------------------------------------------------------------
Summary
I would like to setup Citect to talk to a Premium (or Micro) via the UNITE Protocol, but I am unsure as to the exact procedure.
Solution
The UNITE driver is an implementation of Unitelway over TCP/IP. It allows Citect to communicate to Premium PLC's over an Ethernet connection. It also allows Citect to communicate to the Micro PLC over Ethernet using the ETZ module.
Below is the recommended method for communicating with a Premium PLC with the ETY module:
Using PL7 software, configure the hardware with an appropriate IP address and Xway address. In this example, an IP address of 84.0.1.14 is used, and an XWAY address of 1.3 (Network = 1, Station = 3).
Ensure you can use the XIP driver from Schneider to communicate to the PLC. If this does not work, it is likely Citect will also have problems communicating.
Summary
I would like to setup Citect to talk to a Premium (or Micro) via the UNITE Protocol, but I am unsure as to the exact procedure.
Solution
The UNITE driver is an implementation of Unitelway over TCP/IP. It allows Citect to communicate to Premium PLC's over an Ethernet connection. It also allows Citect to communicate to the Micro PLC over Ethernet using the ETZ module.
Below is the recommended method for communicating with a Premium PLC with the ETY module:
Using PL7 software, configure the hardware with an appropriate IP address and Xway address. In this example, an IP address of 84.0.1.14 is used, and an XWAY address of 1.3 (Network = 1, Station = 3).
Ensure you can use the XIP driver from Schneider to communicate to the PLC. If this does not work, it is likely Citect will also have problems communicating.
once you have successful communications with the PLC via XIP you are ready to configure the Citect system.
Run the IO Express setup wizard.
Create or use an existing IO Server (remember you can only have 1 IO server running on 1 PC).
Create a name for the IO device ( say “PremiumETY” )
Select External IO device.
Now from the Driver list, select the Telemechanique folder, and expand it, then expand the Premium and Micro folder, and select Ethernet (TCP/IP). Click next.
Enter the IP address of the ETY (or ETZ module) making sure it is the same as configured using XIP or PL7 software. Enter 502 in the port field. By default UNITE uses port 502 for session connections. TCP should be selected. Click next. Click next again, then finish.
Now check that the Ports, Boards and IO Device forms in the Project Editor match these settings (or similar for your project):
Board Type: TCPIP
Run the IO Express setup wizard.
Create or use an existing IO Server (remember you can only have 1 IO server running on 1 PC).
Create a name for the IO device ( say “PremiumETY” )
Select External IO device.
Now from the Driver list, select the Telemechanique folder, and expand it, then expand the Premium and Micro folder, and select Ethernet (TCP/IP). Click next.
Enter the IP address of the ETY (or ETZ module) making sure it is the same as configured using XIP or PL7 software. Enter 502 in the port field. By default UNITE uses port 502 for session connections. TCP should be selected. Click next. Click next again, then finish.
Now check that the Ports, Boards and IO Device forms in the Project Editor match these settings (or similar for your project):
Board Type: TCPIP
Board Address: 0
Port Name: Port1
Port Number:
Port Baud Rate:
Port Data Bits:
Port Stop Bits:
Port Parity:
Port Special Option: -i84.0.1.14 -p502 -t
Unit Name: PremiumETY
Unit Number: 1 (must be unique number for each IO device)
Unit Address: 1.3.0 (Network.Station.Gate)
Unit Protocol: UNITE
Unit Port Name: Port1
Here is an example of a variable tag pointing to %MW1:
Variable Tag Name: MemoryWord1
Port Name: Port1
Port Number:
Port Baud Rate:
Port Data Bits:
Port Stop Bits:
Port Parity:
Port Special Option: -i84.0.1.14 -p502 -t
Unit Name: PremiumETY
Unit Number: 1 (must be unique number for each IO device)
Unit Address: 1.3.0 (Network.Station.Gate)
Unit Protocol: UNITE
Unit Port Name: Port1
Here is an example of a variable tag pointing to %MW1:
Variable Tag Name: MemoryWord1
Data type: Integer
I/O Device Name: PremiumETY
Address: %MW1
See online help for data types that are supported by the UNITE driver.
The next step is to configure a Network, Station and Gate number for the CitectSCADA PC. To do this add the following lines to the Citect.ini file:
[UNITE]
Network=1
Station=1 (Each device on the Network must have a unique Station number)
Gate=0
After these changes are saved to the citect.ini file, shutdown Citect (both Explorer and Runtime) for the changes to take effect.
Pack and compile your project.
Run the project. You should now have successful communications with the Premium.
Keywords: UNITE, Unitelway, TSX, Premium, Telemecanique
/
I/O Device Name: PremiumETY
Address: %MW1
See online help for data types that are supported by the UNITE driver.
The next step is to configure a Network, Station and Gate number for the CitectSCADA PC. To do this add the following lines to the Citect.ini file:
[UNITE]
Network=1
Station=1 (Each device on the Network must have a unique Station number)
Gate=0
After these changes are saved to the citect.ini file, shutdown Citect (both Explorer and Runtime) for the changes to take effect.
Pack and compile your project.
Run the project. You should now have successful communications with the Premium.
Keywords: UNITE, Unitelway, TSX, Premium, Telemecanique
/
*引用结束*/
按照这篇文章,基本上可以顺利与premium通讯,之所以说基本,是因为还有几个问题没有解决。一,上文说可以使用PL7或Unity Pro给PLC设置一个适当的IP地址和XWAY address,但没有说怎样的设置是适当的.
实际上PL7和Unity的设置也不尽相同,我的做法如下PL7在设置的时候在硬件配置图上双击CPU旁的ETY通讯模块在Messaging 的选项卡下可以看到Xay address和IP configured的选项。同时在右边可以看到connection configuration的选项,我在下面的Xway address和Ip address里分别填上位监控软件的相关地址,protocol选择Unite,Mode选Multi;在Unity下则需要先配置以太网,Communication-network-右键选择new network.tcp ip协议下载安装选择ethernet,然后再做配置。与PL7的不同在于Unity的IP configuration 和Messaging 是两个不同的选项卡,在前者下面配置IP 地址,在后者下面配置Xway address和connection configuration,这里的connection configuration 下面没有了protocol的选项。(注意:我没有试过不配置connection configuration对通讯有没有影响)
另外,在上述文章中提到需要安装Unity 的XIPdriver,安装过程很简单就不再赘述了。不过需要注意的一点,在第一次配置XIP driver的时候,需要保证以太网卡是连通的,也就是说连
按照这篇文章,基本上可以顺利与premium通讯,之所以说基本,是因为还有几个问题没有解决。一,上文说可以使用PL7或Unity Pro给PLC设置一个适当的IP地址和XWAY address,但没有说怎样的设置是适当的.
实际上PL7和Unity的设置也不尽相同,我的做法如下PL7在设置的时候在硬件配置图上双击CPU旁的ETY通讯模块在Messaging 的选项卡下可以看到Xay address和IP configured的选项。同时在右边可以看到connection configuration的选项,我在下面的Xway address和Ip address里分别填上位监控软件的相关地址,protocol选择Unite,Mode选Multi;在Unity下则需要先配置以太网,Communication-network-右键选择new network.tcp ip协议下载安装选择ethernet,然后再做配置。与PL7的不同在于Unity的IP configuration 和Messaging 是两个不同的选项卡,在前者下面配置IP 地址,在后者下面配置Xway address和connection configuration,这里的connection configuration 下面没有了protocol的选项。(注意:我没有试过不配置connection configuration对通讯有没有影响)
另外,在上述文章中提到需要安装Unity 的XIPdriver,安装过程很简单就不再赘述了。不过需要注意的一点,在第一次配置XIP driver的时候,需要保证以太网卡是连通的,也就是说连
接的网线必须是活跃的(我的另一端是PLC,需要保证它工作)这样XIP driver才能检测出本机设置的IP地址,。
同时,虽然要安装XIP driver,但根据我的经验,在Citect运行的时候XIP driver不可以工作,也就是说在Citect运行时必须关掉XIP driver才行。(次日:其实只要将XIP driver的address设置的与Citect不一样,两者也是可以不冲突的,例如前者设为1.2.0(network.station.gate)后者为1.1.0是可以的)
还有一点,Citect似乎不能直接读写输入输出变量,而只能读写PLC内存变量。虽然在帮助文件里提到输入输出的数字量地址可以定义为%Ir.m.c和%Qr.m.c。但实际上如果出现这种格式的变量Citect就会报错,而读写%Mn的内存变量则是没有问题的。
虽然接下来的工作还很多,但突然之间有种如释重负的感觉。
同时,虽然要安装XIP driver,但根据我的经验,在Citect运行的时候XIP driver不可以工作,也就是说在Citect运行时必须关掉XIP driver才行。(次日:其实只要将XIP driver的address设置的与Citect不一样,两者也是可以不冲突的,例如前者设为1.2.0(network.station.gate)后者为1.1.0是可以的)
还有一点,Citect似乎不能直接读写输入输出变量,而只能读写PLC内存变量。虽然在帮助文件里提到输入输出的数字量地址可以定义为%Ir.m.c和%Qr.m.c。但实际上如果出现这种格式的变量Citect就会报错,而读写%Mn的内存变量则是没有问题的。
虽然接下来的工作还很多,但突然之间有种如释重负的感觉。
redlaker,2008-03-11 14:23:15
经验值得参考
经验值得参考
prodigy,2008-05-07 20:19:33
楼主 用以太网模块 的MAC 地址 来连接CPU这个很正常
只 需要楼主把本机的地址修改 成 和模块地址同一个网段就行
楼主这样连接PLC的时候 时候 在程序内部是否已经定义了模块的IP哪?
如果在程序中定义的IP和你的机器是同一个网段的
那程序下载之后 连接是没有问题的
如果 网段不一样 那么肯定在程序下载后就连接不上CPU了
楼主说的卸载了 杀毒软件之类的 是不是真的解决了问题
希望楼主能说明下
jhwxy007,2008-05-22 00:52:53
经验值得参考,不过感觉premium还是不太好,不如使用M340
经验值得参考,不过感觉premium还是不太好,不如使用M340
wfx1983,2008-05-22 11:41:13
谢谢楼主,让我学到不少东西
谢谢楼主,让我学到不少东西
strong1,2008-05-22 16:03:05
各位对不住了,楼主已经回答不了了,原因见bbs.e10000/a/a.asp?B=32&ID=514134 .不过现在通过TCP联premium已经毫无问题了,以前主要是不熟练.
各位对不住了,楼主已经回答不了了,原因见bbs.e10000/a/a.asp?B=32&ID=514134 .不过现在通过TCP联premium已经毫无问题了,以前主要是不熟练.
1 此主题共有6帖 此页6帖 每页12帖
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论