西门子CP模块的实用方法,200300通讯编程系列!
通讯控制一直以来都是西门子不易学习,却很实用的功能,通过简单的线路连接以及软件编程,可以实现大量数据的传递,非常实用,但因使用通讯控制必须全面熟悉PLC,因此通讯控制也是PLC学习中的难点。
今天我们学习下西门子300和西门子200系列PLC的通讯。
S7-200 PLC本体没有以太网口,需要通过以太网模块CP243-1来扩展以太网通信,且一个S7-200PLC只能扩展一个CP243-1。
CP243-1最多8个以太网S7控制器通信,每个连接既可以是服务器连接也可以是客户机连接。
一个客户端(Client)可以包含1-32个数据传输操作,一个读写操作最多可以传输212个字节。如果CP243-1作为服务器运行,每个读操作可以传送222个字节。
可以把S7-200的以太网模块CP243-1配置为CLIENT,使用STEP 7 Micro/WIN中的向导进行通信的配置即可。在命令菜单中选择工具--以太网向导。
图1 打开以太网向导
第一步是对以太网通信的描述,点击下一步开始以太网配置。
图2 向导介绍
在此处选择模块的位置,CPU后的第一个模块位置为0,往后依次类推;或者在线的情况下,点击读取模块搜寻CP243-1模块(在线读取将该模块的命令字节载入模块命令字节向导屏幕)。点击下一步;
图3 读取模块
选择模块相匹配的MLFB版本,本例中的CP243-1模块型号为6GK7243-1EX01-0XE0,如下图所示
图4 模块版本选择
在此处填写IP地址和子网掩码。点击下一步;
图5 地址设置
下面的对话框将组态CP243-1进行S7连接的连接数量的设置,通过S7连接可以与通信伙伴进行读写数据操作。点击“下一步”按钮继续进行S7连接组态。
图6 模块占用地址设置
选择此为客户机连接,远程属性TSAP (Transport Service Access Point)填写为03.02,输入S7-300侧的IP地址。点击数据传输按钮进入数据交换的定义。
注意:如果连接远程对象是 S7-300,TSAP为03.02;如果连接远程对象是 S7-400,TSAP为03.0x,其中x为CPU模块的槽位,可以从S7-400 站的硬件组态中找出PLC的槽号。
图7 连接设置
选择"数据传输"标记,并单击"新传输"按钮,进行配置:选择是读取数据还是写入数据,填写通讯数据的字节个数,填写发送数据区和接收数据区的起始地址。
本例中为从S7-300的MB200开始读取8个字节到VB1000开始的8个字节的区域中;从S7-200的VB2000开始的8个字节写到S7-300的QB0开始的8个字节的区域中,点击确认按钮:
注意: 本地PLC中的地址必须是V内存字节地址,远程对象中的地址必须代表字节地址。当您为S7-300/ S7-400设备输入远程地址时,若是数据块请使用DBx.DBBy格式。
图8 数据区域设置
选择CRC校验,使用缺省的时间间隔30秒,点击下一步按钮。
图9 使用CRC
填写模块所占用的V存储区的起始地址。你也可以通过“建议地址”按钮来获得系统建议的V存储区的起始地址, 点击下一步按钮。
图10 配置存储区
S7-200侧编程
完成以太网向导配置后需要在程序中调用以太网向导所生成的ETHx_CTRL和ETH0_XFR, 然后,将整个项目下载到作客户端的S7-200 CPU上。
1. 调用向导生成的子程序,实现数据传输
对于S7-200的同一个连接的多个数据传输,不能同时激活,必须分时调用。下面的程序就是用前一个数据传输的完成位去激活下一个数据传输,如图11.图12.图13. 所示
图11 S7-200程序段1
图12 S7-200程序段2
图13 S7-200程序段3
如果通信未建立成功,可以对应查询子程序的错误代码。
S7-300作客户端,S7-200作服务器
S7-200以太网向导设置
通过以太网向导将以太网模块CP243-1配置为服务器,使用STEP 7 Micro/WIN中的向导进行通信的配置即可。在命令菜单中选择工具--以太网向导。
第一步是对以太网通信的描述,点击下一步开始以太网配置。
在此处选择模块的位置,CPU后的第一个模块位置为0,往后依次类推;或者点击读取模块搜寻在线的CP243-1模块(且将该模块的命令字节载入模块命令字节向导屏幕)。点击下一步;
选择模块相匹配的MLFB版本,如下图所示:
在此处填写IP地址和子网掩码。本例中将IP地址设置为:140.80.0.60,点击下一步;
下面的对话框将组态CP243-1进行S7连接的连接数量的设置。通过S7连接可以与通信伙伴进行读写数据操作,点击“下一步”按钮继续进行S7连接组态。本例中CP243-1的第三、四个连接分别为服务器连接。
组态一个到S7-300的服务器连接:
S7-200和S7-300的S7连接通过TSAP来定义。
注意:分别组态S7-200和S7-300时,本地和远程的TSAP号是必须完全对应的。通常本地TSAP是默认的,所以在组态此步骤时,需要两边确认一下。
本地TSAP为12.00无法更改,远程TSAP设置为10.04(这是在STEP7网络组态得到的参数)。激活“接受所有连接请求”复选框,点击“下一步”按钮继续组态。
选择CRC校验,使用缺省的时间间隔30秒,点击下一步按钮。
填写模块所占用的V存储区的起始地址。你也可以通过建议地址按钮来获得系统建议的V存储区的起始地址, 点击下一步按钮。
点击”完成”按钮完成以太网向导设置。
之后功能块ETHx_CTRL 和 ETHx_XFR将被创建,必须在STEP 7-MicroWIN的主循环块MAIN (OB1)中调用这些功能块。
功能块ETHx_CTRL 用于建立通讯。编写图中的通讯程序,保存组态并下载到S7-200 CPU上。
注意:功能块ETHx_XFR 仅在用于客户端进行数据传送时才被调用。
S7-300侧组态
本例中使用S7-300作为样例建立S7连接,对于S7-400的组态步骤是一样的。
在STEP7中打开S7-300项目文件,通过Options--Configure Network或者是相对应的图标打开NetPro对话框。
在NetPro中选中S7-300站的CPU并通过菜单命令,Insert--New Connection添加一个新连接。
选择连接伙伴为“unspecified”及连接类型为“S7 connection”。点击“Apply”按钮,之后S7连接的属性对话框将打开。
由于S7连接是由S7-300创建,因此在S7连接的属性对话框中须激活“Establish an active connection“复选框。输入通信伙伴CP243-1的IP地址,之后点击“Address Details”按钮。
在“Address Details”对话框中,本地的TSAP通常选用默认,输入通信伙伴的TSAP,本例中S7-200的TSAP为12.00。
注意:分别组态S7-200和S7-300时,本地和远程的TSAP号是必须完全对应的。通常本地TSAP是默认的,所以在组态此步骤时,需要两边确认一下。
在NetPro中选中S7-300站,保存及编译后下载到S7-300 中,此处注意需要下载网络组态。
接下来,在S7程序中调用功能块,进行编程。
STEP7编写PUT/GET程序
需要在S7-300程序中,调用功能块FB14 “GET” 和 FB15 “PUT”。可以在Standard Library--Communication Blocks--Blocks下找到这些功能块。
注意:
1. ID:为Netpro里组态S7连接属性窗口中的Block paramters-Local ID。
2.ADDR_1为伙伴PLC的数据区域,由于通信伙伴是S7-200的V区,V区与S7-300的DB1地址相对应。
3.RD_1为本地PLC的数据接收区;SD_1为本地PLC的数据发送区。
如果通信无法建立,请查看“PUT”和“GET”指令的错误代码,STATUS仅在一个周期内有效,需要在ERROR=1时捕捉错误状态。如下图所示:
对于FB14 “GET” 和 FB15 “PUT”的输入参数'ID",也可通过鼠标右击功能块ID引脚,可以自动插入本地ID连接。如下图所示:
如何玩转CODESYS?
目前codesys + EtherCAT驱动 做运动控制很有优势。现在总线式运动控制基本都是这种配置。
Codesys 号称PLC界的安卓,国内造PLC的 基本都用Codesys内核了。
如:汇川 ,合信, 和利时 ,英威腾, 台达。
包括国外的: 倍福TC2 施耐德Somachine 力士乐 等等都是Codesys
直观的讲codesys是一个已经写好了运动控制和通讯的软件PLC。
例如:树苺派刷一个Codesys的Runtime应用就可以用Codesys编程当PLC跑程序了。
运动控制中PLCOpen协议是一种PLC的编程规范,博图的运动控制用的也是PLCOpenMotion,而Codesys支持PLCopen规范。
另外Codesys还有对高级语言的支持,例如在Codesys里可以调用C++函数程序。
再比如,Codesys还可以定义多任务,类似于高级语言的并行计算。
认识CODESYS
CODESYS 是什么?
CODESYS是一款工业自动化领域的一款开发编程系统,应用领域涉及工厂自动化、汽车自动化、嵌入式自动化、过程自动化和楼宇自动化等等。CODESYS软件可以分为两个部分,一部分是运行在各类硬件中的RTE(Runtime Environment),另一部分是运行在PC机上的IDE。因此CODESYS的用户既包括生产PLC、运动控制器的硬件厂商,也包括最终使用PLC、运动控制器的用户。
目前全球有近400家的控制系统生产制造商是CODESYS的用户:如ABB、施耐德电气SchneiderElectric、伊顿电气EATON、博世力士乐Rexroth、倍福BECKHOFF、科控KEBA、日立HITACHI、三菱自动化MITSUBISHI、欧姆龙OMRON、研华科技、凌华科技ADLINK、新汉电脑、和利时集团、SUPCON 中控集团、步科自动化KINCO、深圳雷赛、汇川技术、深圳合信、深圳英威腾、华中数控、固高科技等等。
CODESYS 可以做什么?
这里介绍的CODESYS主要指的是CODESYS上位开发程序,也就是下图中Engineering Level的部分。
从图中可以看到,我们从CODESYS Store中下载的CODESYS程序,其中主要包含了IEC61131-3语言的编辑器、编译器、调试器、工程配置工具等。可以实现的功能有MOTION + CNC、可视化、总线、安全等。用户使用IEC语言编写程序,就可以实现运动控制、可视化等等功能。程序经过编译下载到控制器的Runtime中,就可以对设备进行控制。
CODESYS有什么优势?
1.全部功能都集成在一个单一的用户界面
包含全部IEC 61131-3的语言:SFC(顺序功能图)、LD(梯形图)、FBD(功能块)、ST(结构化文本)、IL(指令表),支持从经典PLC编程到面向都对象编程。
全面的功能,方便工程和自动化应用的调试。
为系统化应用程序开发提供可选的附加模块。
可以对绝大多数工业现场总线系统或制造商特定的I / O系统进行组态和调试。
可选的附加组件可以无缝集成到工程中。
安装、维护和培训只需要一个用户界面。
2.为今后的自动化任务提供开放的选择
来自著名制造商的数百台自动化设备可通过CODESYS开发系统进行编程。
提供SoftPLC系统的标准平台。
在现有开发环境和过程中轻松连接。
3.强大的实施复杂自动化项目的能力
快速运行的机器代码,用于不同复杂的设备和应用程序。
用于计算3D CNC /机器人,以及3D可视化的强大工具。
丰富的可扩展功能
可重用程序代码的库的概念
4.该系统已在工业领域被可靠和广泛的使用
CODESYS同类产品
CODESYS是全球为数不多进行软件PLC开发的,类似的公司还有KW(已更名为菲尼克斯软件),infoteam等等。
结语
希望大家能通过本文简短的介绍,对CODESYS软件有一个基本的了解。
相关问答
合信plc如何上载程序?
合信PLC(ProgrammableLogicController)上载程序的方法如下所述:1.首先,先将PLC与电脑连接。连接方式有两种:一种是RS232串口连接方式,另一种是USB连接.....
合信plc怎么连接电脑?
要连接合信PLC与电脑,需要使用专用的编程电缆将PLC的编程口与电脑的串口或USB口相连。然后,在电脑上安装相应的编程软件,如GXWorks2、GXDeveloper等,并将...
plc怎么设置注释字体大小?
1.打开PLC编程软件,并打开需要编辑的程序。2.选择需要设置注释的字体,并右键点击注释框。3.在弹出的菜单中选择“样式”或“格式”选项,然后选择“字体”...
PLC内部程序怎么备份?
备份电脑上已存在对应的CPU类型的文件,则:1.连接PLC与PC通讯端子(RS-422)2.双击打开Gppa3.Fileread选择对应盘符回车选择对应的目录文件出现re...
合信plc如何连接昆仑触摸屏?
要连接昆仑触摸屏与合信PLC,首先需要确保合信PLC支持触摸屏通信功能。然后,使用合适的通信接口模块,如RS485或以太网模块,将PLC与昆仑触摸屏连接。配置PLC的...
简述组态王与PLC通讯的时候,组态王进行通讯设置的步骤?
组态王与PLC通讯首先要定义外部设备,1、在组态王工程浏览器树型目录中选择设备,在右边工作区中出现了“新建”图标,双击此“新建”图标,弹出“设备配置向导”...
信捷plc编程仿的是哪家的?
信捷PLC编程仿的是三菱PLC,是国内基本仿日系的PLC厂家之一。除了信捷汇川,国内还有很多不错的PLC厂家,如和利时、中控、南大傲拓、英威腾、雷赛、合信和海为...
各位朋友我想问问:苏州合信PLC厂商?
[回答]应该是的,和西门子不太一样,像合信200的PLC都带一个FPROT口的modbus通讯库调用不需要分配库存储区地址,西门子是需要分配库存储区地址地址的。只是...
plc的文件格式?
各厂家的PLC编程软件文件格式都不同,做明星的就是西门子PLC,他每个型号和版本的格式文件都不同,兼容性还不好。如西门子plc程序的后缀为:.mwp。一个MWP文件包...
各位盆友!有谁知道在线等!深圳合信PLC费用怎样,有了解合信P...
总之她是一个“温暖”的词汇,是爱的付出与收获,你必须用心去感受她的存在。对我而言,幸福是因为我属于信合这个大家庭中的一员,幸福就来自于我的身...