西门子200PLC ModBus与7台神港温控器通讯实现温度数据采集与集中控制
基于西门子PLC实现的温度检测自动控制系统
温度检测PLC控制系统摘要本论文主要讲述了基于西门子S7-200系列可编程控制器(PLC)主要的控制元件,实现对环境的温度进行实时检测和显示,并同时实现对时间进行显示和校正等功能的显示装置的设计方法。
本设计的传感器部分采用集成温度传感器,集成传感器具有功能强、精度高、响应速度快、体积小、微功耗、价格低、适合远距离传输信号等特点。
集成传感器的外围电路简单,具有较高的性价比。
经过选择集成温度传感器采用电压输出式单片精密集成温度传感器LM35系列产品。
显示部分采用LED七段码进行显示,本装置一共使用了十七个LED数码管进行显示,能够同时显示当时环境的温度和时间,还可以显示年月日等信息,并能实现当环境的温湿度超过一定范围时进行报警的功能。
关键词:PLC,温度传感器,LED显示装置!!所有下载了本文的注意:本论文附有CAD图纸和完整版最终设计,凡下载了本文的读者请留下你的联系方式(QQ邮箱),或加我百度用户名QQ,我把图纸发给你。
最后,希望此文能够帮到你!TEMPERATURE TEST AND CONTRAL SYSTEM OF PLCABSTRACTThis paper mainly based on Siemens S7-200 series programmable controller (PLC) for the control of the main components realize the environmental temperature for real-time detection and display, and to simultaneously achieve right time and calendar set up for display and function display devices design methods.The design of the sensor using integrated temperature sensors, sensor integration with functional and high accuracy. Fast response, small size, very low-power, low price, suitable for long-distance signal transmission characteristics. Integrated sensor external circuit is simple and low cost and high performance. Selected integrated temperature sensor output voltage precision-integrated single-chip temperature sensor LM35 series of products。
西门子200SMART PLC之间通过向导实现S7通讯
西门子200SMART PLC之间通过向导实现S7通讯导读:PUT/GET 指令的编程可以使用PUT/GET 向导以简化编程步骤。
该向导最多允许组态16 项独立PUT/GET 操作,并生成代码块来协调这些操作。
CPU1 (192.168.2.1 ) 把VB100~107数据传输到CPU2(192.168.2.2 ) VB0~7 CPU1 (192.168.2.1 ) 把VB100~107数据读取到CPU2(192.168.2.2 ) VB0~7一、PUT/GET 向导编程步骤PLC1、STEP7 Micro/WIN SMART 在“工具”菜单的“向导”区域单击“Get/Put”按钮,启动PUT/GET 向导(见图1)。
图1 启动2、在弹出的“Get/Put”向导界面中添加操作步骤名称并添加注释(见图2)。
图2a. 点击“添加”按钮,添加PUT/GET 操作b. 为每个操作创建名称并添加注释3、定义PUT/GET操作(见图3、图4)。
图3 定义PUT 操作a. 选择操作类型,PUT 或GETb. 通信数据长度c. 定义远程CPU 的IP 地址d. 本地CPU 的通信区域和起始地址e. 远程CPU 的通信区域和起始地址图4 定义GET 操作a. 选择操作类型,PUT 或GETb. 通信数据长度c. 定义远程CPU 的IP 地址d. 本地CPU 的通信区域和起始地址e. 远程CPU 的通信区域和起始地址4、定义PUT/GET向导存储器地址分配(见图5)。
图5 分配存储器地址注意:点击“建议”按钮向导会自动分配存储器地址。
需要确保程序中已经占用的地址、PUT/GET向导中使用的通信区域与不能存储器分配的地址重复,否则将导致程序不能正常工作。
5、在图5中点击“生成”按钮将自动生成网络读写指令以及符号表。
只需用在主程序中调用向导所生成的网络读写指令即可(见图6)。
图6 主程序中调用向导生成的网络读写指令二、程序调试PLC把主动端程序下载到CPU1中(192.168.2.1),被动端CPU2(192.168.2.2)不需要写程序,把空程序下载到CPU2中即可,打开状态图表监控和写入数据(见图7)。
PLC对温度数据的采集与控制
PLC对温度数据的采集与控制作者:朱清慧王志奎来源:《现代电子技术》2008年第17期摘要:工控现场常遇到对温度的监控,而对温度数据的采集和控制是解决问题的关键。
通常工控现场使用PLC(可编程序控制器)作为系统的控制核心,温度变量经温度传感器(热电偶或热电阻) 采集后,送入PLC的特殊功能单元——温度模块(变送器+模数转换),温度模块对采集到的温度模拟量数据(电压或电流)自动进行模数(A/D)变换,最后转变为PLC可读的数字量(16进制数,以二进制数存放),通过对PLC编程可实现对读入的温度数据进行单位转换和数模(D/A) 转换,根据工业现场需要,编制相应的PLC 处理程序,可对温度进行开环或闭环控制及实现温度对其他设备的跟随控制。
关键词:快闪存储器;热电偶;热电阻;变送器;模数转换中图分类号:TP216 文献标识码:B 文章编号:1004373X(2008)1717703Collecting and Control of Temperature Data by PLCZHU Qinghui,WANG Zhikui(Nanyang Insititute of Technology,Nanyang,473004,China)Abstract:The monitoring and control of temperature in industrial control field is often met.The collecting and control of temperature data is the key to solve probl ually,PLC is a system′s control core and temperature variable collected via temperature sensors(thermocouples or thermal resistors)can be sent to the special function unit of a PLC,namely,temperature module (converting apparatus plus anologdigidal conversion).Temperature module converts the detected temperature anolog data (voltage or current) into digital data automatically(which can be read by a PLC finally).A PLC can process the units of the temperature data and convert the digital data into corresponding voltage or current by internal program.One can design certain PLC program with the need of the industry field to control the temperature in open-loop or close-loop and control other facilities by using of the converted temperature data from time to time.Keywords:flash memory;thermocouple;thermal resistor;converting apparatus;anolog digital conversion1 引言工控现场离不开温度控制,温度数据的采集通常由温度传感器热电偶、热电阻来完成,而温度数据的变换与处理方法很多,可用温度仪、工控机、可编程序控制器(又称PLC)等。
S7-200PLC之间进行Modbus通讯实验
1、硬件组态:S7-200PLC CPU 224XP、S7-200PLC CPU 226、维控触屏LEVI 777T、S7-200PLC之间通讯用RS485通讯电缆、S7-200PLC与维控触屏通讯用RS485通讯电缆、编程用USB/PPI电缆。
主从站设定:CPU 224XP主站,CPU 226为从站。
2、通讯端口及设定:主站CPU 224XP PORT0用于Modbus通讯、PORT1用于连接编程电缆。
从站CPU 226 PORT0用于Modbus通讯、PORT1用于连接维控触摸屏COM1(PPI 协议)。
各端子对应接线如下图。
3、实验内容:①主站读从站输入点信号、V存贮区变量;②主站控制从站输出点、写入从站整数变量及浮点数变量并在触摸屏(与从站相连)上显示;③从站读取主站发送数据并处理。
4、CPU226从站通讯初始化编程如下所示。
从站地址规定为6,端口PORT0通讯波特率9600,无校验、无延迟,允许存取所有的I、Q(MaxIQ=128)、和AI(MaxAI=32)数值,保持寄存器的存贮空间为VB3000开始的1000个字。
5、为从站程序块指定库存贮区,注意:程序中不可使用库存储区占用的地址。
6、在维控触屏中下载用于监控Modbus通讯结果的画面程序,如下图。
其中包括从站本机输入点I0.0~I0.7的状态、输出点Q0.0~Q0.7(受主上控制),以及从站Modbus通讯保持寄存器VB3000~VB3013内容、整数VW3000、浮点数VD3000和VD3008内容等。
7、准备好主站通讯程序。
为主站程序块指定库存贮区,注意:程序中不可使用库存储区占用的地址。
程序如下所示(上电初始化程序实际应用时要放在网络1),其中主站输入点I1.0用于触发数据传送,VB3000用于存贮读从站输入点数据,VB5000用于存贮要写入从站控制输出点的数据,VB6000用于存贮要写入从站V存贮区的数据,VB7000用于存贮由从站读取的V存贮区数据(用于验证写从站结果)。
西门子PLC modbus RTU-通讯案例
西门子S7-200 Modbus例程参考本文介绍可以很快掌握MODBUS通讯的应用问题,使用下面的例程你可以在S7-200CPU之间设置一个简单的Modbus通讯。
这个例子是关于Modbus功能码6的(写从站保持寄存器),也可以作为其他所支持的功能码:1, 2, 3, 4, 5, 15 和16 的基本参数设置步骤。
要求:要使用Modbus协议必须先在STEP 7 Micro/Win上安装指令库。
Modbus主站协议只支持STEP 7 Micro/Win V4.0 SP5及其以上版本.。
#61623 1. 硬件设置#61623 2. 参数匹配#61623 3. 指令库的存储地址#61623 4. 保持寄存器值得传输1. 硬件设置例程中的Modbus通讯是在两个S7-200 CPU的0号通讯口间进行的(最好每个C PU都有两个通讯口)。
在主站侧也可以选择相应库文件 "MBUS_CTRL_P1" 和 "M BUS_MSG_P1"通过1号通讯口通信。
通讯口1与Micro/WIN建立PG或PC连接,两个CPU的通讯口0通过PPI电缆进行连接(电缆的针脚连接为2,3,7,8)。
( 26 KB )图. 012. 参数匹配对于MODBUS通讯, 主站侧需要程序库 "MBUS_CTRL" 和 "MBUS_MSG",从站侧需要程序库 "MBUS_INIT" and "MBUS_SLAVE"。
在 Micro/WIN 中您需要为主站和从站新建一个项目,程序与参数设置见图.02。
必须要保证主站与从站的“Baud”和"Parity"的参数设置要一致,并且程序块" MBUS_MSG"中的"Slave"地址要与程序块"MBUS_INIT"中的"Addr"所设置的一致(见图. 02)。
西门子200PLC和omron温控器modbus通讯程序
西门子200PLC和omron温控器modbus通讯———江湖小色随着智能温控仪表的普及以及工业现场控制的需要,以温控器为代表的智能仪表和PLC等上位机的通讯在过程实施中越来越多的被使用。
今天闲来无事,给新手以及正在做类似项目的朋友做了个简单的教程紧供参考(高手就不必看了)。
由于时间有限,MODBUS通讯的格式等就不再这里赘述了,网上多的是随便down一个看吧。
一:欲做MODBUS通讯,首先要加载MODBUS库如下图1.库上点右键(图1)-----添加删除库(图2)-----添加(A)(找到MODBUS库文件的地址就好了)库加载成功后如图 3. 你也可以向我一样直接下载西门子的库文件(Inst_Library_V11)安装,在哪儿找就不用说了吧。
图1图2图3二:库加载完了,接着就是初始化MODBUS了。
1.以端口0为例,打开加载的端口0的modbus库。
2.加载程序到网络,并如图设置参数(baud=通讯比特率 parity=端口的模式0为PPI通讯1为modbus通讯 timeout=通讯超时时间 done=指令执行完成 error=错误代码)。
本例中通讯的比特率设定为38400(高的比特率可以获得高的通讯效率但是如果环境干扰比较大就要设的低一些不易出错)。
3.modbus通讯指令同时紧有一条可以执行,所以要写如下图的一个小程序。
目的是让4.中的程序交替执行。
程序很简单就不多解释了,如果有什么不懂可以发邮件于我yifan.163@。
4.下面两条指令的功能就是监控温控器的设定值和当前值。
(其中slave是温控器的站号RW可以为0(读)也可以为1(写)决定这条指令是读参数还是写参数 addr就是要读的地址喽,这里要说一下,omron的地址是0000开始而且是16进制的ASCII码,PLC 读地址时要把地址转换为10进制,而且要在原来的地址上加1,然后加40000.例如要读温控器的当前值,他的地址是0404即十进制的1028那么PLC读此参数的地址是40000+1028+1=41029。
西门子S7-200Modbus通信与变频器通信实例
西门子S7-200通过自由口需要控制英威腾变频器的正负转停止和故障复位,运行频率控制以及分二次读取运行速度等12条变频器信息。
程序略微变动适应所有Modbus RTU需要控制。
下面是程序,可以直接导入程序后写入PLC试验ORGANIZATION_BLOCK 主程序:OB1TITLE=BEGINNetwork 1// 主程序,初始化并查执各变频器指令// 一.功能介绍// 该程序专为英威腾CHF系列变频器编写。
英威腾CHF系列变频器内置国际标准的MODBUS通信协议。
程序运行时,变频器作为MODBUS协议从站接收来自CPU224 PLC的通信指令,实现起停、频率给定、监控等功能。
// CHF系列矢量变频器在与CPU224通信前须做好以下准备工作:// 1.确认己安装好CHF系列变频器的通讯卡,并将卡上的端口跳线置于RS485端;// 2.用一根带9针阳性插头的串口通信电缆连接在CPU224 PLC的自由通信口端,电缆另一端的第5、3、8线分别接在CHF变频器RS485通讯卡的GND、485+、485一端子上,其余线屏蔽不用;// 3.预先设置变频器以下参数:// PC.00=1 //变频器通讯地址为1// PC.01=3 //通讯波特率9.6K// PC.02=1 //通讯数据偶校验8位数据位1位停止位// P0.03=2 //变频器的运行指令采用通讯方式// P3.01=7 //变频器的A频率设定采用通讯方式(注意P3.04/P3.05对P3.01通讯频率的影响)// 二.程式结构说明// 该程序由1个主程序3个子程序及2个中断程序组成。
子程序里包含了变频器的起停、复位、查询功能指令,由主程序调用。
中断程序为发送及接收指令提供中断支持。
// main //主程式,初始化并查执各变频器指令// sbr0 //CRC校验子程序// sbr1 //通讯端口初始化子程序// sbr2 //发送变频器写入06/读取03指令,共8个字节// intO //接收完成中断程序// int1 //发送完成中断程序LD SM0.1CALL SBR1 //调用初始化子程序,使能PORT0自由口模式Network 2// 接收完成后延时10mS M4.4接通,运行下一次发送数据LDN M4.0AN M4.1TON T35, 1 // 通讯完成后延时10mS M4.4=1,允许下一次通讯,A T35= M4.4 //主要是为了Modbus RTU二次通讯中间3.5字符间隔时间Network 3// 如果发送或接收超时,延时0.2秒复位M4.0/M4.1,这里暂时设置5秒是为了方便调试LD M4.0O M4.1TON T199, 50A T199R M4.0, 2 //发送或接收超过0.2秒没有完成,复位发送/接收Network 4 // 调用Modbus06写入指令,通讯成功,这里暂时不用,可以作打手频率设定,不知道是否支持广播写入,广播写入主要是变频器故障复位和三个打手频率设定.给棉变频器如果需要用PID控制没有必要用PLC的PID// 当VW110≠VW300时把VW110写入变频器,VW110范围(+10000~-10000)÷10000×50Hz// 地址为变频器地址;字节为发送的字节数量=8个字节;指令=03为读取指令,06为写入指令;数据地址=2000H 为英威腾变频器设置频率的地址;数据内容为写入2000H的内容,范围+10000~0~-10000// 运行命令权限最高,如果运行命令没有完成,程序将会一直执行下去,直到运行命令完成LDN M8.1 //没有发送运行命令,当运行命令发送过程中不能够发送频率写通讯AW<> VW300, VW110 //发送的数据VW110与通讯完成返回的数据不等A M4.4 //允许发送S M8.0, 1 //发送为写运行速度命令,为了接收信息时保存到VW300用CALL SBR3, 1, 8, 6, 16#2000, VW110 //把VW110数据写入到变频器地址1的2000H寄存器Network 5// 控制变频器正负转停止和故障复位同时有几个输入时执行最后的指令LD SM0.0LPSA I5.1 //运行命令MOVW 1, VW304LRDA I5.3 //反转命令MOVW 2, VW304LRDA I5.2 //停车命令MOVW 5, VW304LPPA I5.4 //故障复位命令MOVW 7, VW304Network 6 // 设定英威腾变频器1000H通信控制命令,来控制变频器正负转和停止等操作命令// 控制变频器运转英威腾变频器地址1000H 01正转运行02反转运行03正转点动04反转点动05停车06自由停车07故障复位08点动停车LDW<> VW304, VW302 //运行命令VW304与接收的返回信息比较,不相等将一直发送下去A M4.4S M8.1, 1 //为了把返回信息的保存到VW302寄存器CALL SBR3, 1, 8, 6, 16#1000, VW304 //把命令内容VW304写入到英威腾变频器的1000H地址Network 7 // 调用Modbus读取,不要读取范围以外的内容,不然会报错误// 读取变频器状态3000H 运行速度3001H 设定速度3002H 母线电压3003H 输出电压3004H 输出电流3005H运转速度// 当有其他重要的读写命令时该通讯暂停// 分2次读取英威腾变频器3000H~3005H 3008H~3013H信息,本来英威腾变频器说明书说可以连续读取16条信息,不过我读取16条信息返回数据没有CRC校验内容,不知为何,本来是试验程序,有时需要连续读取多条信息,就试验读取2次12条信息LDN M8.0AN M8.1 //程序没有发送写频率和运行命令时才能够读取变频器数据A M4.4LPS //调用查询变频器INCB VB270 //启动T37延时断开计时器A V270.0S M8.2, 1MOVW 16#3000, VW272 //读取3000H开头的连续6条信息LRDAN V270.0S M8.3, 1MOVW 16#3008, VW272 //读取3008H开头的连续6条信息LPPCALL SBR3, 1, 8, 16#03, VW272, 6END_ORGANIZATION_BLOCKSUBROUTINE_BLOCK 初始化:SBR1TITLE=通讯端口初始化子程序// 该程序在PLC的第一个扫描周期运行,主要是设置CPU224自由端口的通信格式、数据接收格式及复位各寄存区(参见西门子S7-200编程手册)。
西门子plc与欧姆龙温控器MODEM
随着智能温控仪表的普及以及工业现场总线集中控制技术的不断完善,以温控器为代表的智能仪表和PLC等上位机的通讯在工业控制过程实施中越来越多的被使,其中以ModBus的应用最为普遍。
过去我曾经发表过一篇《西门子200PLC和omron温控器modbus 通讯》的文章,后来收到很多朋友的邮件请教ModBus的相关问题,但是由于工作比较忙的原因,不能逐一的回复各位网友的疑问,最近稍微比较清闲,正好刚做了一个类似的项目,重新编写了循环读取及错误处理程序,相比《西门子200PLC和omron温控器modbus通讯》中的实验程序更具有实用性,所以决定再写这篇文章,希望对各位朋友有所帮助。
顺便谈谈做ModBus通讯需要注意的一些事情。
关于如何实用ModBus库及程序这里就不多说了,《西门子200PLC和omron温控器modbus通讯》中有详细讲过,你可以通过这个链接看到这篇文章。
/view/1e666e0876*******edb11ad.html直接讲程序了:有点小麻烦,PDF打印机出了点问题,看来只能复制STL代码了。
1.初始化:LD Always_On:SM0.0= L60.0LD Always_On:SM0.0= L63.7LD L60.0CALL MBUS_CTRL_P1:SBR3, L63.7, 19200, 2, 1000, M13.5, VB2110注意:黄色显示部分。
初始化指令中的比特率、校验位、要和你所要通讯的仪表的一致。
初始化程序写好后编译是会报错的,因为你还没有分配库存储区。
2.循环扫描一:LD Always_On:SM0.0LPSA M17.0LPSAB= VB2111, 0R M17.1, 1S M17.2, 1R M17.0, 1LPPAB<> VB2111, 0R M17.1, 1LRDA M17.3LPSAB= VB2112, 0R M17.2, 1S M17.4, 1R M17.3, 1LPPAB<> VB2112, 0R M17.2, 1LRDA M17.5 LPSAB= VB2113, 0 R M17.4, 1 S M17.6, 1R M17.5, 1 LPPAB<> VB2113, 0 R M17.4, 1 LRDA M17.7 LPSAB= VB2114, 0 R M17.6, 1 S M18.0, 1R M17.7, 1 LPPAB<> VB2114, 0 R M17.6, 1 LRDA M18.1 LPSAB= VB2115, 0 R M18.0, 1 S M18.2, 1R M18.1, 1 LPPAB<> VB2115, 0 R M18.0, 1 LRDA M18.3 LPSAB= VB2116, 0 R M18.2, 1 S M18.4, 1R M18.3, 1 LPPAB<> VB2116, 0 R M18.2, 1 LPPA M18.5 LPSAB= VB2117, 0S M18.6, 1R M18.5, 1LPPAB<> VB2117, 0R M18.4, 13.循环扫描二:LD Always_On:SM0.0LPSA M18.7LPSAB= VB2118, 0R M18.6, 1S M20.0, 1R M18.7, 1LPPAB<> VB2118, 0R M18.6, 1LRDA M20.1LPSAB= VB2119, 0R M20.0, 1S M20.2, 1R M20.1, 1LPPAB<> VB2119, 0R M20.0, 1LRDA M20.3LPSAB= VB2120, 0R M20.2, 1S M20.4, 1R M20.3, 1LPPAB<> VB2120, 0R M20.2, 1LRDA M20.5LPSAB= VB2121, 0R M20.4, 1S M20.6, 1LPPAB<> VB2121, 0R M20.4, 1LRDA M20.7LPSAB= VB2122, 0R M20.6, 1S M19.2, 1R M20.7, 1LPPAB<> VB2122, 0R M20.6, 1LRDA M19.3LPSAB= VB2123, 0R M19.2, 1S M19.4, 1R M19.3, 1LPPAB<> VB2123, 0R M19.2, 1LPPA M19.5LPSAB= VB2124, 0R M19.4, 1S M17.1, 1R M19.5, 1LPPAB<> VB2124, 0R M19.4, 1以上两段循环扫描程序自己分析一下吧,结构都相同,基本上看懂第一段就完全明白了。
西门子S7200与变频器MODBUS通讯实例详解
西门子S7200与变频器MODBUS通讯实例详解西门子S7200PLC简介西门子S7-200PLC在实时模式下具有速度快,具有通讯功能和较高的生产力的特点。
一致的模块化设计促进了低性能定制产品的创造和可扩展性的解决方案。
来自西门子的S7- 200微型PLC可以被当作独立的微型PLC解决方案或与其他控制器相结合使用。
Modbus通讯协议简介Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。
ModBus网络是一个工业通信系统,由带智能终端的可编程序控制器和计算机通过公用线路或局部专用线路连接而成。
其系统结构既包括硬件、亦包括软件。
它可应用于各种数据采集和过程监控。
ModBus网络只有一个主机,所有通信都由他发出。
网络可支持247个之多的远程从属控制器,但实际所支持的从机数要由所用通信设备决定。
采用这个系统,各PC可以和中心主机交换信息而不影响各PC执行本身的控制任务。
1MODBUSRTU协议在S7-200中的应用原理1.1MODBUSRTU协议与S7-200相互关系简介S7-200CPU上的通讯口Port0可以支持MODBUSRTU协议,成为MODBUSRTU从站。
此功能是通过S7-200的自由口通讯模式实现,因此可以通过无线数据电台等慢速通讯设备传输。
想在S7-200CPU与其他支持MODBUSRTU的设备使用MODBUSRTU协议通讯,需要由有S7-200CPU做MODBUS主站。
S7-200CPU做主站必须由用户自己用自由口模式,按相关协议编程。
2从站指令的用法:S7-200控制系统应用中,MODBUSRTU从站指令库只支持CPU上的通讯0口(Port0)。
要实现MODBUSRTU通讯,需要Step7-Micro/WIN32V3.2以上版本的编程软件,而且须安装Step7-Micro/WIN32V3.2InstructionLibrary(指令库)。
西门子S7200系列PLC数据采集和点表自动侦测获取
西门子S7200系列PLC数据采集和点表自动侦测获取
西门子S7200系列PLC数据采集和点表自动侦测获取
一、需求描述
在数据采集项目实施中,经常遇到PLC的通讯口已经被触摸屏占用,PLC程序加密,设备厂商不提供数据点表等技术问题,NET30系列工业通讯桥接器提供了一个便捷可靠的解决方案。
二、方案描述:
以西门子S7200系列PLC为例,将工业通讯桥接器NET30-PPI,安装在PLC和操控触摸屏之间。
模块会自动捕捉触摸屏和PLC之间的通讯信息,分析出对应的数据地址。
通过桥接器的网口,可以同时采集PLC的数据,同时支持触摸屏的通讯。
连接图:
三、点表自动侦测和数据分析软件
1、打开EXC点表自动侦测工具,扫描网络上的设备
2、选择监听接口和协议,开始监听,在数据区会显示当前通讯的
数据地址
3、数据地址分析,可以选择数据长度和数据类型,将数据和触摸屏页面对照,确定地址和数据的映射关系。
触摸屏显示页面:
小结:通过桥接器这样简单的硬件连接,配合点表自动侦测和分析软件,可以很高效的获取到所需要采集的数据点表。
S7-200PLC实现大量温度数据采集的方法———S7-EM239模拟量扩展模块的使用方法
S7-200PLC是西门子公司的小型PLC系统,具有简单灵活的特点,但是,模拟量通道少的可怜,增加一个扩展模块也只有4路模拟量输入,尤其热电偶温度、热电阻温度采集模块,不但通道少,而且价格高,信号类型必须统一选择,不能混合输入,当需要采集大量温度时,S7-200PLC将无法胜任。
一,S7-EM239模拟量扩展模块S7-EM239模块是专为S7-200系统设计的16通道模拟量扩展模块,外形尺寸和使用方法与S7-200系列模块完全兼容,可以和S7-200系列S7-200PLC是西门子公司的小型PLC系统,具有简单灵活的特点,但是,模拟量通道少的可怜,增加一个扩展模块也只有4路模拟量输入,尤其热电偶温度、热电阻温度采集模块,不但通道少,而且价格高,信号类型必须统一选择,不能混合输入,当需要采集大量温度时,S7-200 PLC将无法胜任。
一,S7-EM239模拟量扩展模块S7-EM239模块是专为S7-200系统设计的16通道模拟量扩展模块,外形尺寸和使用方法与S7-200系列模块完全兼容,可以和S7-200系列的任何型号的CPU直接连接,每个CPU可以连接32个S7-EM239模块,最大可实现512路模拟量采集S7-EM239模块有16路模拟量输入通道,每个通道可以独立设置为电压、电流、热电阻温度、热电偶温度等信号类型,有6种类型的热电偶和6种型号的热电阻可以选择,16个通道信号类型可以混合输入,满足多通道模拟量采集的需要,尤其在多通道温度数据采集的场合,不仅使用方便,而且节约成本,每通道相当100元。
二,S7-EM239模块与S7-200CPU的连接S7-EM239模块与S7-200CPU的连接十分简单,将S7-EM239模块的RS485接口与S7-200CPU的RS485接口连接在一起就可以了,如下图所示。
三,软件编程S7-EM239模块支持MOD BUS-RTU协议,S7-200CPU只需使用MODBUS协议库指令,即可读取S7-EM239模块的采集数据。
西门子S7-200通过MODBUS库与仪表通讯
西门子S7-200通过MODBUS库与仪表通讯之欧侯瑞魂创作西门子自带的modbus库可以实现和仪表通过MODBUS协议进行自由通讯,可以将现场仪表数据通过通讯的方式上传至PLC中。
工具/原料•S7-200PLC、支持modbusrtu通讯的仪表•西门子200编程软件方法/步调1.首先配置好智能仪表从站通讯参数,拿9600 8 1 none 地址3举例2.3.网络3,填写从站通讯参数4.5.读取输入寄存器,读取完成M2.2置位,复位M2,.16.M2.2置位,写数据开始,VB3000写入00001中,写完成,M2.3置位,开始读,M2.2复位。
S7-200 smart 的PLC怎样实现Modbus通信?现有程序如下:通讯上了,但是不知道怎么写入数据、读取数据?不太懂,有没有大神能够提供详细的程序参考参考。
就是在PLC与电脑连接后,能够在电脑端(PLC程序)可以看到写进去的数据,及读取的数据。
例如:与变频器通讯,修改启动参数地址。
然后读取变频器当前运行频率。
求救啊!!!关键的是修改的地址与我变频器地址怎么对应起来。
1、S7-200 SMART CPU上的通信口0(Port0)通过指令库支持Modbus RTU从站模式。
2、S7-200 SMART CPU 上的通讯口0和1(Port0和Port1)通过指令库支持Modbus RTU主站模式。
3、S7-200 SMART CPU 上的通讯口0和1(Port0和Port1)不克不及同时作为Modbus RTU主站或从站。
对吗?系统手册中的哪页有说明?问题弥补:SMB30设置的通讯参数与MBUS_INIT 指令(初始化从站)参数分歧会有冲突吗?能同时用吗?如何用?专家置评S7-200smart做modbus RTU通信1、通信口:本体集成的RS485为端口0,信号板232/485可选,端口12、通信方式:使用指令库:软件集成,指令库不是根据端口划分,根据主站从站划分,端口切换在程序块port引脚完成,两个通信口不克不及同时做主站或者从站使用自由口编程:定义smb30/130,调用指令完成通信,完全编程实现S7-200 SMART 软件的帮忙有明确说明打开软件找到库选择初始化主站或者从站程序块然后按F1从站参数“端口”(Port)设置物理通信端口(0 = CPU 中集成的RS-485,1 = 可选信号板上的RS-485 或RS-232)。
西门子S7-200系列PLC的MODBUS通信功能(一)
西门子S7-200系列PLC的MODBUS通信功能(一)这段时间经常有学员问有关于S7-200系列PLC的MODBUS通信的问题,所以今天就写一遍文章,来跟大家聊聊S7-200系列PLC的MODBUS的通信功能如何使用。
MODBUS通信协议概述:MODBUS协议是一个通用的协议,在很多智能设备上都支持这个通信协议,如变频器,智能温控仪表等都支持MODBUS通信协议。
MODBUS通信协议有具有串行链路上的MODBUS ASCAII通信和MODBUS RTU通信,也有基于TCP/IP上的 MODBUS TCP通信。
这里我们主要介绍基于串行链路上的MODBUS RTU的通信。
MODBUS RTU的信息帧格式:Start:起始码,表示的是一个信息帧的开头,MODBUS RTU通信,使用时间来作为信息帧的开头,主要是检测传输线上的空闲的时间,长度为3.5个字符时长,一个字符的长度跟数据位,停止位、起始位、奇偶校验位,波特率有关。
Address:地址码(一个字节),表示的是从站的站号,从站站号有从站设备给定或是设置,如变频器,可以在变频器参数中设置变频器的站号。
Function:功能码(一个字节),描述对从站的读写操作,是对从站读取数据,还是写入数据到从站,常见功能码如下图所示:Data:数据区(N个字节),数据区主要有两部分构成,一部分称为数据区的地址,一部分称为数据区的内容,如需要控制变频器的运行,则变频器的运行代码称为数据区内容,运行代码需要写入的地方称为数据区地址。
CRC:校验码(2字节),对从站号到数据区的数据进行CRC校验,可以参考前面一篇对于CRC校验程序设计的内容介绍。
End:结束码,与起始码一样,也是通过时间进行判断。
接下来,我们以西门子S7-200SMART系列的PLC与深圳的海普蒙特的变频器为例,来说明使用MODBUS的通信方式来控制变频器的运行,频率的修改,及读取一些参数的程序首先,我们需要熟悉变频器说明书上所描述的通信的内容,从说明书上显示支持的功能码为03,06,和16这三种功能码(注意0X10表示的是16进制数10):提供的信息帧格式为:例如:运行命令控制,地址位十六进制数的3200,往地址3200中写入不同的代码表示不同的控制命令,如下图所示根据以上内容,我们可以写出控制变频器运行的信息帧的格式,假设变频器的站号设置为1,则可以得出如下图所示的信息帧的格式其他的命令的信息帧格式,参考变频器说明书,以相同的方式可以写出。
西门子S7-200--MODBUS通信协议和支持MODBUS-RTU协议的电磁流量计、超声波流量计的通信实例
西门子S7_200 MODBUS通信协议和支持MODBUS RTU协议的电磁流量计、超声波流量计的通信实例S7_200系列PLC有一个通信口的也有两个通信口的,这两个口都支持MODBUS通信协议,不过要添加MODBUS库文件(SP6版本的step7 micro/win 软件自带有MODBUS库文件)。
下面根据具体的项目来说明MODBUS的使用:在项目中要采集进水流量的瞬时流量、日累计、月累计、年累计量,流量计本身有4~20mA信号输出和脉冲信号输出,这些输出信号都是瞬时量,只能转换为瞬时流量,而累积量就要通过编写程序来累加,而且信号的传输衰减和计算过程产生的误差就会造成和实际的流量相差很多,现在很多的流量计(包括其他的测量设备)都设计有通讯口,尤其是支持MODBUS协议,所以首选通信方式采集数据,这样可以直接读取我们想要的数据,只需做稍微的数据转换就可以的,同时也减小了工作量提高准确性(实际是按照流量收取费用的)。
实际的硬件连接:10套s7-200组成PPI网络(其中一个200站做主站),有一个从站要采集两个不同厂家的流量计的相关信息。
PPI网络层已经用去了一个端口0,还剩下一个端口1,那么就用这个端口并设置为自由口协议,在程序中调用MODBUS程序块并填写好必要的信息就可以了(其实调用MODBUS程序块时,程序块内就已经设置好端口为自由口协议了)。
图1.MODBUS库文件图2.控制指令图3.控制指令这里MBUS_CTRL_P1指令要一直调用,有一点要指明:图2中的程序是读取其中一台流量计的,图3是读取另一台流量计的,这两个流量计是不一样的。
这里最重要的是MBUS_MSG_P1指令中地址“Addr”的填写,其实这里要填写Modbus从站的寄存器地址(该地址内有我们需要的信息),那么这个地址要怎么填写呢,填写多少呢?这就要查看从站设备(这里是流量计)的“通信手册”了,因为每个厂家的设备都不一样,所以相同信息的寄存器地址也不一样。
基于modbus协议的S7—300PLC温度数据采集
基于modbus协议的S7—300PLC温度数据采集作者:寇洪涛来源:《中国新技术新产品》2017年第01期摘要:钱家营矿600水泵房和850水泵房通过自动化改造,实现“有人巡视、无人值守”目的,把两个水平的关键数据通过网络传输到全矿自动化平台系统中,实现远程开泵,实时监测水泵的各项性能参数,本文主要阐述如果通过modbus协议的RS485总线采集电机和水泵的温度参数到PLC中,经过PLC处理通过网络模块实时显示在地面上位机界面。
关键词:modbus协议;温度采集;水泵房;S7-300PLC中图分类号:TN915 文献标识码:A0.前言钱家营矿的涌水量比较大,共设置了3个水平的泵房,伴随着全自动化矿井的建设,需要对-600水泵房和-850水泵房进行升级改造,水泵和电机的温度参数保证着水泵的安全运行,每个水泵房共设置10台排水泵,每台水泵通过YBD-200温度巡检仪进行温度采集,该仪表采用的是modbus协议通过RS485总线接口传输到PLC,经过PLC处理,传输到地面上位机实时显示。
1.温度巡检仪通信协议YBD200型仪表采用的是标准modbus协议,RTU传输模式。
Modbus协议是一种主-从通信协议。
任何时刻只有一个设备能够在线路上进行发送。
由主站点管理信息交换,且只有它能发起。
它会相继对从站进行轮询。
除非被主站批准,否则任何从站都不能发送消息。
从站之间不能进行直接通信。
协议帧中不包含任何消息报头字节或消息字节结束符。
1.它的定义如下(见表1):从站地址:消息中的地址包含一个字节,从站地址范围是1…255。
主设备通过将要联络的从设备的地址放入消息中的地址域来选通从设备。
当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备做出回应。
数据:以二进制代码传输。
CRC16:循环冗余错误校验。
采用的是9600bps的波特率。
字节数据格式:一位起始位,八位数据位,一位偶校验位,一位停止位。
S7-1200PLC基于MODBUS通信协议的数据采集及远程传送应用
S7-1200PLC 基于Modbus 通信协议的数据采集及远程传送应用通过采集各个换热站房的实时数据,建立集中供热热网监控系统既可以实时总览热网当前运行工况又可以分析室外温度及系统供热量变化趋势,做出整体运行规划,指导运行实现自动控制。
自动控制。
Modbus 协议是一种已广泛应用于当今工业控制领域的通用通信协议。
通过此协议,控制器相互之间、或控制器经由网络(如以太网)可以和其它设备之间进行通信。
Modbus 通信物理接口可以选用串口(包括RS232和RS485RS485)),也可以选择以太网口。
,也可以选择以太网口。
S7-1200 设计紧凑、组态灵活且具有功能强大的指令集,这些特点的组合使它成为控制各种应用的完美解决方案。
各种应用的完美解决方案。
TIA TIA TIA博途全集成自动化软件用于博途全集成自动化软件用于博途全集成自动化软件用于S7-1200S7-1200S7-1200项目管理、编程和调试,项目管理、编程和调试,在库函数中嵌套了在库函数中嵌套了Modbus-RTU Modbus-RTU 和Modbus-TCP Modbus-TCP功能库,功能库,可以利用该库函数顺利完成可以利用该库函数顺利完成PLC PLC PLC与第三与第三方设备和上位机的通信。
方设备和上位机的通信。
1系统概述系统概述典型换热站所需监测的运行参数有一次侧供水压力和供水温度、一次侧回水压力和回水温度、二次侧供水压力和供水温度、二次侧供水压力和供水温度、二次侧回水压力和回水温度、二次侧回水压力和回水温度、二次侧回水压力和回水温度、循环变频器工作频率和故循环变频器工作频率和故障状态、补水变频器工作频率和故障状态。
各换热站现场PLC 与智能仪表和变频器通信采集系统运行数,并通过Internet 或企业局域网,上传至主控中心。
操作员从控制中心通过该系统能够方便地得到子站运行的数据并向子站下达控制指令。
数据采集以及远程传送系统连接如图1所示。
最新西门子PLC数据采集方案
西门子P L C数据采集
方案
20200602
西门子系列PLC数据采集方案
1.适用型号
2.硬件描述
1、支持多主站通讯,扩展口可以连触摸屏或其他主站;
2、即插即用,无需外供电源,波特率自适应;
3、支持数据点表自动侦测;
4、同时支持WEB和参数工具进行参数设置和在线诊断;
5、支持西门子S7以太网通讯驱动,STEP7/TIA博图/WINCC等软件通过TCP/IP方式直连PLC。
6、以太网集成ModbusTCP服务器,可以通过标准的Modbus 协议直接和PLC通讯。
7、以太网支持S7TCP连接和modbusTCP同时通讯,最多支持16个上位机的连接。
8、提供高级语言编程(如VB、VC、C#等)示例,方便与管理系统对接。
9、可配合4G无线路由器或云平台实现远程访问。
注释:
以太网口:支持编程下载、上位监控、设备联网、可以同时连接管理系统和工程师/操作员站;
扩展串口通讯:连接西门子/PROFACE/MCGS/威纶/步科等触摸屏和编程电缆;
3.采集方式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西门子200PLC与7台神港温控器ModBus通讯实现温度采集与集中控制——江湖小色首先说点废话。
随着智能温控仪表的普及以及工业现场总线集中控制技术的不断完善,以温控器为代表的智能仪表和PLC等上位机的通讯在工业控制过程实施中越来越多的被使,其中以ModBus的应用最为普遍。
过去我曾经发表过一篇《西门子200PLC和omron 温控器modbus通讯》的文章,后来收到很多朋友的邮件请教ModBus的相关问题,但是由于工作比较忙的原因,不能逐一的回复各位网友的疑问,最近稍微比较清闲,正好刚做了一个类似的项目,重新编写了循环读取及错误处理程序,相比《西门子200PLC和omron温控器modbus通讯》中的实验程序更具有实用性,所以决定再写这篇文章,希望对各位朋友有所帮助。
顺便谈谈做ModBus通讯需要注意的一些事情。
关于如何实用ModBus库及程序这里就不多说了,《西门子200PLC和omron温控器modbus通讯》中有详细讲过,你可以通过这个链接看到这篇文章。
/view/1e666e0876*******edb11ad.html直接讲程序了:有点小麻烦,PDF打印机出了点问题,看来只能复制STL代码了。
1.初始化:LD Always_On:SM0.0= L60.0LD Always_On:SM0.0= L63.7LD L60.0CALL MBUS_CTRL_P1:SBR3, L63.7, 19200, 2, 1000, M13.5, VB2110注意:黄色显示部分。
初始化指令中的比特率、校验位、要和你所要通讯的仪表的一致。
初始化程序写好后编译是会报错的,因为你还没有分配库存储区。
2.循环扫描一:LD Always_On:SM0.0LPSA M17.0LPSAB= VB2111, 0R M17.1, 1S M17.2, 1R M17.0, 1LPPAB<> VB2111, 0R M17.1, 1LRDA M17.3LPSAB= VB2112, 0R M17.2, 1S M17.4, 1R M17.3, 1 LPPAB<> VB2112, 0 R M17.2, 1 LRDA M17.5 LPSAB= VB2113, 0 R M17.4, 1 S M17.6, 1R M17.5, 1 LPPAB<> VB2113, 0 R M17.4, 1 LRDA M17.7 LPSAB= VB2114, 0 R M17.6, 1 S M18.0, 1R M17.7, 1 LPPAB<> VB2114, 0 R M17.6, 1 LRDA M18.1 LPSAB= VB2115, 0 R M18.0, 1 S M18.2, 1R M18.1, 1 LPPAB<> VB2115, 0 R M18.0, 1 LRDA M18.3 LPSAB= VB2116, 0 R M18.2, 1 S M18.4, 1R M18.3, 1 LPPAB<> VB2116, 0 R M18.2, 1A M18.5LPSAB= VB2117, 0R M18.4, 1S M18.6, 1R M18.5, 1LPPAB<> VB2117, 0R M18.4, 13.循环扫描二:LD Always_On:SM0.0LPSA M18.7LPSAB= VB2118, 0R M18.6, 1S M20.0, 1R M18.7, 1LPPAB<> VB2118, 0R M18.6, 1LRDA M20.1LPSAB= VB2119, 0R M20.0, 1S M20.2, 1R M20.1, 1LPPAB<> VB2119, 0R M20.0, 1LRDA M20.3LPSAB= VB2120, 0R M20.2, 1S M20.4, 1R M20.3, 1LPPAB<> VB2120, 0R M20.2, 1LRDA M20.5AB= VB2121, 0R M20.4, 1S M20.6, 1R M20.5, 1LPPAB<> VB2121, 0R M20.4, 1LRDA M20.7LPSAB= VB2122, 0R M20.6, 1S M19.2, 1R M20.7, 1LPPAB<> VB2122, 0R M20.6, 1LRDA M19.3LPSAB= VB2123, 0R M19.2, 1S M19.4, 1R M19.3, 1LPPAB<> VB2123, 0R M19.2, 1LPPA M19.5LPSAB= VB2124, 0R M19.4, 1S M17.1, 1R M19.5, 1LPPAB<> VB2124, 0R M19.4, 1以上两段循环扫描程序自己分析一下吧,结构都相同,基本上看懂第一段就完全明白了。
当然程序多变,自然是有更好的办法……就不多说了。
4.错误处理LD SM0.5LPSAB<> VB2111, 0S M17.1, 1 LRDAB<> VB2112, 0 EUS M17.2, 1 LRDAB<> VB2113, 0 EUS M17.4, 1 LRDAB<> VB2114, 0 EUS M17.6, 1 LRDAB<> VB2115, 0 EUS M18.0, 1 LRDAB<> VB2116, 0 EUS M18.2, 1 LRDAB<> VB2117, 0 EUS M18.4, 1 LRDAB<> VB2118, 0 EUS M18.6, 1 LRDAB<> VB2119, 0 EUS M20.0, 1 LRDAB<> VB2120, 0 EUS M20.2, 1 LRDAB<> VB2121, 0 EUS M20.4, 1 LRDAB<> VB2122, 0S M20.6, 1LRDAB<> VB2123, 0EUS M19.2, 1LPPAB<> VB2124, 0EUS M19.4, 1由于温度采集过程中偶尔通讯故障不会对系统有影响,所以当检测到通讯故障时直接复位出现故障的程序重新读取。
5. MBUS_MSG指令:用于启动对Modbus从站的请求并处理应答。
Network 6 // 网络标题// 网络注释LD M17.1= L60.0LD M17.1EU= L63.7LD L60.0CALL SBR4, L63.7, 3, 0, 40129, 1, &VB2125, M17.0, VB2111Network 7 // 网络标题// 网络注释LD M17.2= L60.0LD M17.2EU= L63.7LD L60.0CALL SBR4, L63.7, 4, 0, 40129, 1, &VB2135, M17.3, VB2112Network 8 // 网络标题// 网络注释LD M17.4= L60.0LD M17.4EU= L63.7LD L60.0CALL SBR4, L63.7, 5, 0, 40129, 1, &VB2145, M17.5, VB2113Network 9 // 网络标题// 网络注释LD M17.6= L60.0EU= L63.7LD L60.0CALL SBR4, L63.7, 6, 0, 40129, 1, &VB2155, M17.7, VB2114 Network 10 // 网络标题// 网络注释LD M18.0= L60.0LD M18.0EU= L63.7LD L60.0CALL SBR4, L63.7, 7, 0, 40129, 1, &VB2165, M18.1, VB2115 Network 11 // 网络标题// 网络注释LD M18.2= L60.0LD M18.2EU= L63.7LD L60.0CALL SBR4, L63.7, 8, 0, 40129, 1, &VB2175, M18.3, VB2116 Network 12 // 网络标题// 网络注释LD M18.4= L60.0LD M18.4EU= L63.7LD L60.0CALL SBR4, L63.7, 9, 0, 40129, 1, &VB2185, M18.5, VB2117 Network 13 // 网络标题// 网络注释LD M18.6= L60.0LD M18.6EU= L63.7LD L60.0CALL SBR4, L63.7, 3, 1, 40002, 1, &VB2195, M18.7, VB2118 Network 14 // 网络标题// 网络注释LD M20.0LD M20.0EU= L63.7LD L60.0CALL SBR4, L63.7, 4, 1, 40002, 1, &VB2205, M20.1, VB2119 Network 15 // 网络标题// 网络注释LD M20.2= L60.0LD M20.2EU= L63.7LD L60.0CALL SBR4, L63.7, 5, 1, 40002, 1, &VB2215, M20.3, VB2120 Network 16 // 网络标题// 网络注释LD M20.4= L60.0LD M20.4EU= L63.7LD L60.0CALL SBR4, L63.7, 6, 1, 40002, 1, &VB2225, M20.5, VB2121 Network 17 // 网络标题// 网络注释LD M20.6= L60.0LD M20.6EU= L63.7LD L60.0CALL SBR4, L63.7, 7, 1, 40002, 1, &VB2235, M20.7, VB2122 Network 18 // 网络标题// 网络注释LD M19.2= L60.0LD M19.2EU= L63.7LD L60.0CALL SBR4, L63.7, 8, 1, 40002, 1, &VB2245, M19.3, VB2123 Network 19 // 网络标题// 网络注释LD M19.4= L60.0LD M19.4EU= L63.7LD L60.0CALL SBR4, L63.7, 9, 1, 40002, 1, &VB2255, M19.5, VB2124我们分别对两段高亮显示的程序进行分析,首先分析绿色的CALL SBR4, L63.7, 9, 0, 40129, 1, &VB2185, M18.5, VB21179, 0, 40129, 1中的9是9号温控器的,这里要提一下,modbus通讯和其他通讯一样从站必须有自己的站号,而且在总线上是唯一的。