西门子200PLC ModBus与7台神港温控器通讯实现温度数据采集与集中控制

合集下载

基于西门子PLC实现的温度检测自动控制系统

基于西门子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通讯

西门子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对温度数据的采集与控制

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通讯实验

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-通讯案例

西门子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通讯程序

西门子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-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与欧姆龙温控器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以上两段循环扫描程序自己分析一下吧,结构都相同,基本上看懂第一段就完全明白了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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通讯和其他通讯一样从站必须有自己的站号,而且在总线上是唯一的。

相关文档
最新文档