西门子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连接。如下图所示:
怎么从PLC上载程序?要注意那些事项?问题解决
15年的一个项目,由于产品换代需要程序整改。楼主(十年工控702-董工)当年只负责Labview上位机人机界面的编写,所以,PLC程序的整改就成为一个问题。非标项目,一个程序的成型,要经历过n个版本,由于人员流动等因素,最终留下来的程序不一定是最终版,现在台子用的很好,最好的办法就是在现有程序的基础上整改。最终决定,上载现有PLC程序,然后在此(不破坏原来功能)基础上整改。借此机会,谈一谈PLC程序上载的步骤和几个注意点。
网上教程很多,本文在此基础上加入一些问题的解决方案和注意事项。
原来项目用的是西门子300PLC,本教程以西门子1500PLC为例,编程软件用西门子薄涂。步骤都是相同的,问题都是相同的。
上载方式:
l 作为新站上传: 作为新站上传设备(硬件和软件)l 从设备中上传(软件)两中上传方式有必要解释一下:
1) 作为新站上传: 作为新站上传设备(硬件和软件)。括号里面的备注很有必要。顾名思义,作为新站上传设备(硬件和软件),就是把硬件软件都上传上来。什么意思呢?就像楼主这种工况,某种原因,我没有了源程序,我需要整改PLC程序,我又懒的组态硬件,这时候用到这中上传方式就很方便了。硬件上载上来的意思就是把组态也给上载了。
如果是别人做的项目,你要上载程序,最好选这种方式。
2) 从设备中上传(软件)
有了上面的解释,这个就好理解了,可能是只上载某个程序或者某个功能块,就需要这种上载方式。
下面说说步骤:
这个步骤不是重点,随便百度一下,或者帮助文档都有。楼主懒得打字,就复制帮助文档的原文,如下:
l 作为新站上传设备(硬件和软件)步骤:
在项目树中选择项目名称。在“在线”(Online) 菜单中,选择“作为新站上传设备(硬件和软件)”(Upload device as new station (hardware and software))。“将设备上传到 PG/PC”(Upload device to PG/PC) 对话框随即打开。
在“PG/PC 接口类型”(Type of the PG/PC interface) 下拉列表中,选择将用于上传操作的接口类型。从“PG/PC 接口”(PG/PC interface) 下拉列表中,选择要使用的接口。单击“PG/PC 接口”(PG/PC interface) 下拉列表右侧的“组态接口”(Configure interface) 按钮,修改选定接口的设置。通过选择相应选项并单击“开始搜索”(Start search) 命令,显示所有兼容的设备。在可访问的设备表格中,选择要上传项目数据的设备。单击“加载”(Load) 按钮。根据所选的设备,将显示一个对话框,需输入诸如模块机架位置的等更多信息。
将设备的项目数据上传到项目中。此时,可离线编辑这些数据,并重新下载到设备中。
总结和补充一下:
1. 当然是要改IP地址了 :这个上面的步骤没说清楚,不要一上来就上载,先看看IP地址是不是在一个波段内。PLC IP地址192.168.0.1 ,你设个192.168.0.10,完事。这一步忽略了,上面搜索设备,绝对搜不到。楼主这个项目,看了下上位机IP地址192.168.0.8,确定PLC地址192.168.0.X,随便设一个本机地址192.168.0.Y即可,只要不重复即可。
2. 新项目取个名字: 软硬件都上传了,就相当于整个PLC项目都上传上来了,作为一个新项目存在,要有个名字,上传完以后要保存。保存的时候最好加上日期,区别于PLC现在运行的程序。
3. 搜到现有PLC: “PG/PC 接口,搜索,没什么可说的。
4. 上传: 很简单,一下就传上来了。
注意两点:版本兼容性问题
待上传的硬件配置和软件必须与 TIA Portal 相兼容。如果设备上的数据由前版本程序或不同组态的软件创建,则需确保它们的兼容性。
不得不说,西门子博途实在是太恶心了,各种版本,各种恶心。
一般的软件,都是向下兼容,比如楼主常用的Labview,博途偏不。下面摘录一下博途软件的兼容性问题。
TIA Portal 版本间的兼容性
TIA Portal 最新版本的向下兼容性
与旧版本相比,当前项目版本 V15.1 进行了功能扩展,因此采用最新版本的保存的项目不支持向下兼容。版本为 V15.1 的项目只能使用 TIA Portal V15.1 或更高版本打开。
反正一句话,打不开,就换版本吧。
第二个问题,楼主遇到的问题:没有变量名,这个很讨厌。
文章开头提到的项目中,项目PLC为西门子300,在项目上传时,是没有变量名和注释的。这个就很麻烦。看PLC梯形图非常费劲。需要去猜这段程序大概什么意思,一不留神就会出错。
有两个办法,一个是,一个一个的去查 IO点,这个是死的,这个确定了,在根据程序本事的含义去倒退各变量代表的含义。这个办法在小项目中是完全可行的。但是楼主遇到的项目相对较大。所以有了第二种方法。
第二种办法:复制粘贴变量表。上载的大多用在两种工况,一种是完全没程序,需要上载,一种是,有旧程序,没有PLC运行的程序。楼主属于第二种情况,就是手里的程序不一定和PLC运行的程序匹配,需要上载,但是,两个PLC程序的变量表是大概一致的。
所以,楼主用了第二种办法。把旧程序的变量表拷贝到上载程序就可以了。这个办法楼主亲测有效。但是,注释,标题什么的就不型了。好在有了变量表,只需要在源程序稍加改动就可以,程序本身就能看懂就行了,注释什么的不太需要。
l 从设备中上传(软件):这个不作为重点
如果仅将一个设备中的项目数据上传到项目中,请按以下步骤操作:
与要下载项目数据的设备建立在线连接。在项目树中选择一个设备。此时,“在线”(Online) 菜单中的“从设备上传(软件)”(Upload from device (software)) 命令将启用。
在“在线”(Online) 菜单中,选择“从设备上传(软件)”(Upload from device (software)) 命令。“上传预览”(Upload preview) 对话框随即打开。
在“上传预览”(Upload preview) 对话框中,查看报警并在“操作”(Action) 列中选择所需的操作。可进行上传时,“从设备上传”(Upload from device) 按钮随即启用。
单击“从设备上传”(Upload from device) 按钮。相关问答
合信plc通讯端口怎么设置?
合信plc通讯端口需要正确设置首先,需要在电脑上安装合信plc通讯软件,然后在软件中选择正确的通讯端口,比如COMCOM同时,在PLC程序中,也需要设定相应的通讯端...
合信plc如何连接昆仑触摸屏?
要连接昆仑触摸屏与合信PLC,首先需要确保合信PLC支持触摸屏通信功能。然后,使用合适的通信接口模块,如RS485或以太网模块,将PLC与昆仑触摸屏连接。配置PLC的...
合信CTSC-100PLC可以使用西门子PLC通讯电缆下载吗?
合信CTSC-100PLC相当于西门子200系列PLC,可以使用西门子200系列PLC的PPI通信电缆。合信CTSC-100PLC相当于西门子200系列PLC,可以使用西门子200系列P...
有国产的兼容西门子PLC的产品吗?
其实国内目前来讲,兼容西门子的有深圳合信、亿维、欧辰,上海正航,这4家可以说是目前国内做的最好的,不过这几家也有区别的,亿维,欧辰主要都在做西门子S7-30...
请问一下!汕头专业的合信PLC,合信PLC性能好吗??
[回答]48ma,短时间可以正常运行,但时间久了,限流电阻就会烧坏,有些甚至会烧坏铜皮和信隔离光耦。从而设备不能运转,给客户带来损失,因此如果PLC信供电是采...
在座的童鞋谁帮忙回答一下国产PLC的编程方式?国产plc品牌...
[回答]新手学PLC编程,需要电工基础,没有电工基础应该看这方面的课程,应该先从这方面的课程看起,李金城老师新开设一门的《学习PLC之预备知识》、曹卫权老...
求指教!!信捷PLC和台达触摸屏通信?
[回答]知识背景:10年电气自动化行业经验,熟悉西门子丰炜、永宏PLC、菱、合信、信捷、台达等PLC应用,了解日鼎、富士、松下、台达、意大利TDE、路斯特、麦...
PLC都有哪些品牌?
PLC四大品牌:西门子,施耐德,AB(罗克韦尔),GE。中型PLC:西门子,施耐德,欧姆龙,三菱。小型PLC:西门子,欧姆龙,三菱,LS,松下,富士....PLC控制系...PLC四大品...
老铁们跪求回复,国产plc兼容西门子的品牌有哪些?国产plc品...
[回答]Quantum系统同时提供了IEC要求的全部5种编程方式:LD、FBD、SFC、IL、ST,将传统DCS与PLC的优势完美地结合于一体,同时具备了强大的过程控制功能和离...
能否告诉我:南方网通魏洋怎么样?,南方网通G3云平台需要预...
[回答]CTH200具有以太网通信、全新扩展板、高性价比以及安全、稳定、可靠的特点。CTSC100/200系列PLC连接合信网关模块CP6453,即可便捷的接入MiCo云平台中...