在变电站用交流配电盘上S7-200PLC得到的运用_第1页
在变电站用交流配电盘上S7-200PLC得到的运用_第2页
在变电站用交流配电盘上S7-200PLC得到的运用_第3页
在变电站用交流配电盘上S7-200PLC得到的运用_第4页
在变电站用交流配电盘上S7-200PLC得到的运用_第5页
已阅读5页,还剩197页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑在变电站用交流配电盘上S7—200PLC得到的运用贵阳市南供电局110kV观水变电站是贵阳市南明区的主要供电站,变电站用配电盘运行的稳定可靠性直接影响到向整个区大部分的生产、生活供电,原用的配电盘系统功能简单、自动化程度不高、控制方式落后,对供电局实现无人值守变电站和配网自动化带来很多不变,也不能时刻保证城区电网供电的电源质量。

设备改造中使用了西门子公司的224XP-CPU、TP270人机界面、EM221数字量输入模块、EM222数字量输出模块和CP243-1以太网通讯模块。

图1企业照片

图2系统结构图

型号

数量

备注

224XP

1

AC/DC/R/Port×2

EM221×8

4

DC24V

EM222×8

2

DC24V

243-1

1

TP270

1

10寸

GKR-02

2

DIRISAP

1

OF

40

DC24V

CD630A

2

MICRO

1

NS200A

2

NS125A

6

C65/63A

28

24V/2.5A

1

MicroWin4.0

1

ProTools/Pro6.0

1

图3应用中的画面

在设计过程中的问题就是如何将智能仪表的数据通过S7-200PLC读到TP270上。本系统中的智能仪表用的是MODBUS_RUT协议,只能做从站使用,也就是说S7-200PLC必须做主站去读取仪表的数据,在现行的资料中只有S7--200PLC做MODBUS从站的资料,要S7-200PLC做主站就只有自己编写用自由口做MODBUS主站的程序,由于仪表提供的数据较多且数据地,,,,H-CN主站的程序,由于仪表提供的数据较多且数据地址分散,再加上要求每秒刷新,还要做数据的CRC校验,编写这样的通讯程序是有一定难度的,如果逐一地址的编写程序,那么程序就会过长,会影响总循环时间,不但做不到1秒钟刷新,可能还会引起端口发送、接收冲突和CRC校验出错,经过反复的研究实验,在程序中采用了用计数器来轮询地址的方法,从而减少了程序量和总循环时间。部分程序如下:(OB1主要功能为初始化端口为自由口,初始化发送和接收的数据格式,设定轮询时间,轮询和中断连接;SBR5和SBR6做发送和接收数据的CRC校验,CRC检验主要通过字节异或循环,移位循环和公式异或做发送数据的CRC校验;中断1为接收数据;中断2对接收CRC校验结果验证)

OB1

LDSM0.1初始化端口

MOVB16#09,SMB30

MOVB16#9C,SMB87

MOVW+150,SMW92

MOVW+0,SMW90

MOVB50,SMB94

LDSM0.1初始化发送数据

MOVB16#08,VB2100

MOVB16#05,VB2101

MOVB16#03,VB2102

MOVB16#03,VB2103

MOVB16#0,VB2104

MOVB16#0,VB2105

MOVB16#02,VB2106

LDSM0.1初始化接收数据

MOVB16#09,VB1200

MOVB16#05,VB1201

MOVB16#03,VB1202

MOVB16#04,VB1203

LDSM0.0设定轮询时间

ANT96

TONT32,+150

LDSM0.0

AT32

TONT96,+150

LDT32

EU

LDC1

CTUC1,16#10

LDSM0.0

AW=16#0,C1

EU

MOVW16#0300,VW2103发送轮询数据

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#1,C1

EU

MOVW16#0302,VW2103

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#02,C1

EU

MOVW16#0304,VW2103

CALLCRC:SBR5

XMTVB2100,0

…………

LDSM0.7中断连接

ATCHINT_0:INT0,9

ATCHINT_1:INT1,23

ENI

SRB6(SBR5同SBR6)

LDAlways_On:SM0.0读出数据长度,初始化CRC字

MOVBVB1200,VB1301

MOVWVW1300,VW1302

-I16#02,VW1302

MOVW16#FFFF,VW1306

MOVDVB1200,VD1400

FORVW1304,16#1,VW1302

LDAlways_On:SM0.0字节异或循环

+D16#1,VD1400

MOVB*VD1400,VB1410

XORBVB1410,VB1307

FORVW1310,16#1,16#08

LDAlways_On:SM0.0移位循环

MOVWVW1306,VW1420

SRWVW1306,1

LDSM1.1公式异或

XORW16#A001,VW1306

NEXT

NEXT

LDAlways_On:SM0.0CRC16字传递

MOVBVB1307,VB1100

MOVBVB1306,VB1101

INT1

LDAlways_On:SM0.0

RCVVB2200,0

INT2

LDSM86.7

OSM86.6

OSM86.0

CRETI

LDAlways_On:SM0.0

MOVDVD2204,VD1204

LDAlways_On:SM0.0

CALLCRC16:SBR6

LDWVW1100,VW2208

CRETI

LDW=16#0,C1

MOVDVD2204,VD2500

LDW=16#1,C1

MOVDVD2204,VD2504

…………

经过改造的设备自2022年7月运行以来,系统稳定、功能强大、操作简单,赢得了用户的一致好评,为变电站的无人值守和变电站的安全运行提供了有利保障。

,址分散,再加上要求每秒刷新,还要做数据的CRC校验,编写这样的通讯程序是有一定难度的,如果逐一地址的编写程序,那么程序就会过长,会影响总循环时间,不但做不到1秒钟刷新,可能还会引起端口发送、接收冲突和CRC校验出错,经过反复的研究实验,在程序中采用了用计数器来轮询地址的方法,从而减少了程序量和总循环时间。部分程序如下:

OB1

LDSM0.1初始化端口

MOVB16#09,SMB30

MOVB16#9C,SMB87

MOVW+150,SMW92

MOVW+0,SMW90

MOVB50,SMB94

LDSM0.1初始化发送数据

MOVB16#08,VB2100

MOVB16#05,VB2101

MOVB16#03,VB2102

MOVB16#03,VB2103

MOVB16#0,VB2104

MOVB16#0,VB2105

MOVB16#02,VB2106

LDSM0.1初始化接收数据

MOVB16#09,VB1200

MOVB16#05,VB1201

MOVB16#03,VB1202

MOVB16#04,VB1203

LDSM0.0设定轮询时间

ANT96

TONT32,+150

LDSM0.0

AT32

TONT96,+150

LDT32

EU

LDC1

CTUC1,16#10

LDSM0.0

AW=16#0,C1

EU

MOVW16#0300,VW2103发送轮询数据

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#1,C1

EU

MOVW16#0302,VW2103

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#02,C1

EU

MOVW16#0304,VW2103

CALLCRC:SBR5

XMTVB2100,0

…………

LDSM0.7中断连接

ATCHINT_0:INT0,9

ATCHINT_1:INT1,23

ENI

SRB6(SBR5同SBR6)

LDAlways_On:SM0.0读出数据长度,初始化CRC字

MOVBVB1200,VB1301

MOVWVW1300,VW1302

-I16#02,VW1302

MOVW16#FFFF,VW1306,

FORVW1304,16#1,VW1302

LDAlways_On:SM0.0字节异或循环

+D16#1,VD1400

MOVB*VD1400,VB1410

XORBVB1410,VB1307

FORVW1310,16#1,16#08

LDAlways_On:SM0.0移位循环

MOVWVW1306,VW1420

SRWVW1306,1

LDSM1.1公式异或

XORW16#A001,VW1306

NEXT

NEXT

LDAlways_On:SM0.0CRC16字传递

MOVBVB1307,VB1100

MOVBVB1306,VB1101

INT1

LDAlways_On:SM0.0

RCVVB2200,0

INT2

LDSM86.7

OSM86.6

OSM86.0

CRETI

LDAlways_On:SM0.0

MOVDVD2204,VD1204

LDAlways_On:SM0.0

CALLCRC16:SBR6

LDWVW1100,VW2208

CRETI

LDW=16#0,C1

MOVDVD2204,VD2500

LDW=16#1,C1

MOVDVD2204,VD2504

…………

经过改造的设备自2022年7月运行以来,系统稳定、功能强大、操作简单,赢得了用户的一致好评,为变电站的无人值守和变电站的安全运行提供了有利保障。

,,,H-CN主站的程序,由于仪表提供的数据较多且数据地址分散,再加上要求每秒刷新,还要做数据的CRC校验,编写这样的通讯程序是有一定难度的,如果逐一地址的编写程序,那么程序就会过长,会影响总循环时间,不但做不到1秒钟刷新,可能还会引起端口发送、接收冲突和CRC校验出错,经过反复的研究实验,在程序中采用了用计数器来轮询地址的方法,从而减少了程序量和总循环时间。部分程序如下:(OB1主要功能为初始化端口为自由口,初始化发送和接收的数据格式,设定轮询时间,轮询和中断连接;SBR5和SBR6做发送和接收数据的CRC校验,CRC检验主要通过字节异或循环,移位循环和公式异或做发送数据的CRC校验;中断1为接收数据;中断2对接收CRC校验结果验证)

OB1

LDSM0.1初始化端口

MOVB16#09,SMB30

MOVB16#9C,SMB87

MOVW+150,SMW92

MOVW+0,SMW90

MOVB50,SMB94

LDSM0.1初始化发送数据

MOVB16#08,VB2100

MOVB16#05,VB2101

MOVB16#03,VB2102

MOVB16#03,VB2103

MOVB16#0,VB2104

MOVB16#0,VB2105

MOVB16#02,VB2106

LDSM0.1初始化接收数据

MOVB16#09,VB1200

MOVB16#05,VB1201

MOVB16#03,VB1202

MOVB16#04,VB1203

LDSM0.0设定轮询时间

ANT96

TONT32,+150

LDSM0.0

AT32

TONT96,+150

LDT32

EU

LDC1

CTUC1,16#10

LDSM0.0

AW=16#0,C1

EU

MOVW16#0300,VW2103发送轮询数据

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#1,C1

EU

MOVW16#0302,VW2103

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#02,C1

EU

MOVW16#0304,VW2103

CALLCRC:SBR5

XMTVB2100,0

…………

LDSM0.7中断连接

ATCHINT_0:INT0,9

ATCHINT_1:INT1,23

ENI

SRB6(SBR5同SBR6)

LDAlways_On:SM0.0读出数据长度,初始化CRC字

MOVBVB1200,VB1301

MOVWVW1300,VW1302

-I16#02,VW1302

MOVW16#FFFF,VW1306

MOVDVB1200,VD1400

FORVW1304,16#1,VW1302

LDAlways_On:SM0.0字节异或循环

+D16#1,VD1400

MOVB*VD1400,VB1410

XORBVB1410,VB1307

FORVW1310,16#1,16#08

LDAlways_On:SM0.0移位循环

MOVWVW1306,VW1420

SRWVW1306,1

LDSM1.1公式异或

XORW16#A001,VW1306

NEXT

NEXT

LDAlways_On:SM0.0CRC16字传递

MOVBVB1307,VB1100

MOVBVB1306,VB1101

INT1

LDAlways_On:SM0.0

RCVVB2200,0

INT2

LDSM86.7

OSM86.6

OSM86.0

CRETI

LDAlways_On:SM0.0

MOVDVD2204,VD1204

LDAlways_On:SM0.0

CALLCRC16:SBR6

LDWVW1100,VW2208

CRETI

LDW=16#0,C1

MOVDVD2204,VD2500

LDW=16#1,C1

MOVDVD2204,VD2504

…………

地址分散,再加上要求每秒刷新,还要做数据的CRC校验,编写这样的通讯程序是有一定难度的,如果逐一地址的编写程序,那么程序就会过长,会影响总循环时间,不但做不到1秒钟刷新,可能还会引起端口发送、接收冲突和CRC校验出错,经过反复的研究实验,在程序中采用了用计数器来轮询地址的方法,从而减少了程序量和总循环时间。部分程序如下:

OB1

LDSM0.1初始化端口

MOVB16#09,SMB30

MOVB16#9C,SMB87

MOVW+150,SMW92

MOVW+0,SMW90

MOVB50,SMB94

LDSM0.1初始化发送数据

MOVB16#08,VB2100

MOVB16#05,VB2101

MOVB16#03,VB2102

MOVB16#03,VB2103

MOVB16#0,VB2104

MOVB16#0,VB2105

MOVB16#02,VB2106

LDSM0.1初始化接收数据

MOVB16#09,VB1200

MOVB16#05,VB1201

MOVB16#03,VB1202

MOVB16#04,VB1203

LDSM0.0,;n,bsp;设定轮询时间

ANT96

TONT32,+150

LDSM0.0

AT32

TONT96,+150

LDT32

EU

LDC1

CTUC1,16#10

LDSM0.0

AW=16#0,C1

EU

MOVW16#0300,VW2103发送轮询数据

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#1,C1

EU

MOVW16#0302,VW2103

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#02,C1

EU

MOVW16#0304,VW2103

CALLCRC:SBR5

XMTVB2100,0

…………

LDSM0.7中断连接

ATCHINT_0:INT0,9

ATCHINT_1:INT1,23

ENI

SRB6(SBR5同SBR6)

LDAlways_On:SM0.0读出数据长度,初始化CRC字

MOVBVB1200,VB1301

MOVWVW1300,VW1302

-I16#02,VW1302

MOVW16#FFFF,VW1306

MOVDVB1200,VD1400

FORVW1304,16#1,VW1302

LDAlways_On:SM0.0字节异或循环

+D16#1,VD1400

MOVB*VD1400,VB1410

XORBVB1410,VB1307

FORVW1310,16#1,16#08

LDAlways_On:SM0.0移位循环

MOVWVW1306,VW1420

SRWVW1306,1

LDSM1.1公式异或

XORW16#A001,VW1306

NEXT

NEXT

LDAlways_On:SM0.0CRC16字传递

MOVBVB1307,VB1100

MOVBVB1306,VB1101

INT1

LDAlways_On:SM0.0

RCVVB2200,0

INT2

LDSM86.7

OSM86.6

OSM86.0

CRETI

LDAlways_On:SM0.0

MOVDVD2204,VD1204

LDAlways_On:SM0.0

CALLCRC16:SBR6

LDWVW1100,VW2208

CRETI

LDW=16#0,C1

MOVDVD2204,VD2500

LDW=16#1,C1

MOVDVD2204,VD2504

…………

经过改造的设备自2022年7月运行以来,系统稳定、功能强大、操作简单,赢得了用户的一致好评,为变电站的无人值守和变电站的安全运行提供了有利保障。

,,,,H-CN主站的程序,由于仪表提供的数据较多且数据地址分散,再加上要求每秒刷新,还要做数据的CRC校验,编写这样的通讯程序是有一定难度的,如果逐一地址的编写程序,那么程序就会过长,会影响总循环时间,不但做不到1秒钟刷新,可能还会引起端口发送、接收冲突和CRC校验出错,经过反复的研究实验,在程序中采用了用计数器来轮询地址的方法,从而减少了程序量和总循环时间。部分程序如下:(OB1主要功能为初始化端口为自由口,初始化发送和接收的数据格式,设定轮询时间,轮询和中断连接;SBR5和SBR6做发送和接收数据的CRC校验,CRC检验主要通过字节异或循环,移位循环和公式异或做发送数据的CRC校验;中断1为接收数据;中断2对接收CRC校验结果验证)

OB1

LDSM0.1初始化端口

MOVB16#09,SMB30

MOVB16#9C,SMB87

MOVW+150,SMW92

MOVW+0,SMW90

MOVB50,SMB94

LDSM0.1初始化发送数据

MOVB16#08,VB2100

MOVB16#05,VB2101

MOVB16#03,VB2102

MOVB16#03,VB2103

MOVB16#0,VB2104

MOVB16#0,VB2105

MOVB16#02,VB2106

LDSM0.1初始化接收数据

MOVB16#09,VB1200

MOVB16#05,VB1201

MOVB16#03,VB1202

MOVB16#04,VB1203

LDSM0.0设定轮询时间

ANT96

TONT32,+150

LDSM0.0

AT32

TONT96,+150

LDT32

EU

LDC1

CTUC1,16#10

LDSM0.0

AW=16#0,C1

EU

MOVW16#0300,VW2103发送轮询数据

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#1,C1

EU

MOVW16#0302,VW2103

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#02,C1

EU

MOVW16#0304,VW2103

CALLCRC:SBR5

XMTVB2100,0

…………

LDSM0.7中断连接

ATCHINT_0:INT0,9

ATCHINT_1:INT1,23

ENI

SRB6(SBR5同SBR6)

LDAlways_On:SM0.0读出数据长度,初始化CRC字

MOVBVB1200,VB1301

MOVWVW1300,VW1302

-I16#02,VW1302

MOVW16#FFFF,VW1306

MOVDVB1200,VD1400

FORVW1304,16#1,VW1302

LDAlways_On:SM0.0字节异或循环

+D16#1,VD1400

MOVB*VD1400,VB1410

XORBVB1410,VB1307

FORVW1310,16#1,16#08

LDAlways_On:SM0.0移位循环

MOVWVW1306,VW1420

SRWVW1306,1

LDSM1.1公式异或

XORW16#A001,VW1306

NEXT

NEXT

LDAlways_On:SM0.0CRC16字传递

MOVBVB1307,VB1100

MOVBVB1306,VB1101

INT1

LDAlways_On:SM0.0

RCVVB2200,0

INT2

LDSM86.7

OSM86.6

OSM86.0

CRETI

LDAlways_On:SM0.0

MOVDVD2204,VD1204

LDAlways_On:SM0.0

CALLCRC16:SBR6

LDWVW1100,VW2208

CRETI

LDW=16#0,C1

MOVDVD2204,VD2500

LDW=16#1,C1

MOVDVD2204,VD2504

…………

经过改造的设备自2022年7月运行以来,系统稳定、功能强大、操作简单,赢得了用户的一致好评,为变电站的无人值守和变电站的安全运行提供了有利保障。

,red;mso-bidi-font-size:10.5pt"OB1

LDSM0.1初始化端口

MOVB16#09,SMB30

MOVB16#9C,SMB87

MOVW+150,SMW92

MOVW+0,SMW90

MOVB50,SMB94

LDSM0.1初始化发送数据

MOVB16#08,VB2100

MOVB16#05,VB2101

MOVB16#03,VB2102

MOVB16#03,VB2103

MOVB16#0,VB2104

MOVB16#0,VB2105

MOVB16#02,VB2106

LDSM0.1初始化接收数据

MOVB16#09,VB1200

MOVB16#05,VB1201

MOVB16#03,VB1202

MOVB16#04,VB1203

LDSM0.0设定轮询时间

ANT96

TONT32,+150

LDSM0.0

AT32

TONT96,+150

LDT32

EU

LDC1

CTUC1,16#10

LDSM0.0

AW=16#0,C1

EU

MOVW16#0300,VW2103发送轮询数据

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#1,C1

EU

MOVW16#0302,VW2103

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#02,C1

EU

MOVW16#0304,VW2103

CALLCRC:SBR5

XMTVB2100,0

…………

LDSM0.7中断连接

ATCHINT_0:INT0,9

ATCHINT_1:INT1,23

ENI

SRB6(SBR5同SBR6)

LDAlways_On:SM0.0读出数据长度,初始化CRC字

MOVBVB1200,VB1301

MOVWVW1300,VW1302

-I16#02,VW1302

MOVW16#FFFF,VW1306

MOVDVB1200,VD1400

FORVW1304,16#1,VW1302

LDAlways_On:SM0.0字节异或循环

+D16#1,VD1400

MOVB*VD1400,VB1410

XORBVB1410,VB1307

FORVW1310,16#1,16#08

LDAlways_On:SM0.0移位循环

MOVWVW1306,VW1420

SRWVW1306,1

LDSM1.1公式异或

XORW16#A001,VW1306

NEXT

NEXT

LDAlways_On:SM0.0CRC16字传递

MOVBVB1307,VB1100

MOVBVB1306,VB1101

INT1

LDAlways_On:SM0.0

RCVVB2200,0

INT2

LDSM86.7

OSM86.6

OSM86.0

CRETI

LDAlways_On:SM0.0

MOVDVD2204,VD1204

LDAlways_On:SM0.0

CALLCRC16:SBR6

LDWVW1100,VW2208

CRETI

LDW=16#0,C1

MOVDVD2204,VD2500

LDW=16#1,C1

MOVDVD2204,VD2504

…………

经过改造的设备自2022年7月运行以来,系统稳定、功能强大、操作简单,赢得了用户的一致好评,为变电站的无人值守和变电站的安全运行提供了有利保障。

,址分散,再加上要求每秒刷新,还要做数据的CRC校验,编写这样的通讯程序是有一定难度的,如果逐一地址的编写程序,那么程序就会过长,会影响总循环时间,不但做不到1秒钟刷新,可能还会引起端口发送、接收冲突和CRC校验出错,经过反复的研究实验,在程序中采用了用计数器来轮询地址的方法,从而减少了程序量和总循环时间。部分程序如下:

OB1

LDSM0.1初始化端口

MOVB16#09,SMB30

MOVB16#9C,SMB87

MOVW+150,SMW92

MOVW+0,SMW90

MOVB50,SMB94

LDSM0.1初始化发送数据

MOVB16#08,VB2100

MOVB16#05,VB2101

MOVB16#03,VB2102

MOVB16#03,VB2103

MOVB16#0,VB2104

MOVB16#0,VB2105

MOVB16#02,VB2106

LDSM0.1初始化接收数据

MOVB16#09,VB1200

MOVB16#05,VB1201

MOVB16#03,VB1202

MOVB16#04,VB1203

LDSM0.0设定轮询时间

ANT96

TONT32,+150

LDSM0.0

AT32

TONT96,+150

LDT32

EU

LDC1

CTUC1,16#10

LDSM0.0

AW=16#0,C1

EU

MOVW16#0300,VW2103发送轮询数据

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#1,C1

EU

MOVW16#0302,VW2103

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#02,C1

EU

MOVW16#0304,VW2103

CALLCRC:SBR5

XMTVB2100,0

…………

LDSM0.7中断连接

ATCHINT_0:INT0,9

ATCHINT_1:INT1,23

ENI

SRB6(SBR5同SBR6)

LDAlways_On:SM0.0读出数据长度,初始化CRC字

MOVBVB1200,VB1301

MOVWVW1300,VW1302

-I16#02,VW1302

MOVW16#FFFF,VW1306,

MOVDVB1200,VD1400

FORVW1304,16#1,VW1302

LDAlways_On:SM0.0字节异或循环

+D16#1,VD1400

MOVB*VD1400,VB1410

XORBVB1410,VB1307

FORVW1310,16#1,16#08

LDAlways_On:SM0.0移位循环

MOVWVW1306,VW1420

SRWVW1306,1

LDSM1.1公式异或

XORW16#A001,VW1306

NEXT

NEXT

LDAlways_On:SM0.0CRC16字传递

MOVBVB1307,VB1100

MOVBVB1306,VB1101

INT1

LDAlways_On:SM0.0

RCVVB2200,0

INT2

LDSM86.7

OSM86.6

OSM86.0

CRETI

LDAlways_On:SM0.0

MOVDVD2204,VD1204

LDAlways_On:SM0.0

CALLCRC16:SBR6

LDWVW1100,VW2208

CRETI

LDW=16#0,C1

MOVDVD2204,VD2500

LDW=16#1,C1

MOVDVD2204,VD2504

…………

经过改造的设备自2022年7月运行以来,系统稳定、功能强大、操作简单,赢得了用户的一致好评,为变电站的无人值守和变电站的安全运行提供了有利保障。

,,,H-CN主站的程序,由于仪表提供的数据较多且数据地址分散,再加上要求每秒刷新,还要做数据的CRC校验,编写这样的通讯程序是有一定难度的,如果逐一地址的编写程序,那么程序就会过长,会影响总循环时间,不但做不到1秒钟刷新,可能还会引起端口发送、接收冲突和CRC校验出错,经过反复的研究实验,在程序中采用了用计数器来轮询地址的方法,从而减少了程序量和总循环时间。部分程序如下:(OB1主要功能为初始化端口为自由口,初始化发送和接收的数据格式,设定轮询时间,轮询和中断连接;SBR5和SBR6做发送和接收数据的CRC校验,CRC检验主要通过字节异或循环,移位循环和公式异或做发送数据的CRC校验;中断1为接收数据;中断2对接收CRC校验结果验证)

OB1

LDSM0.1初始化端口

MOVB16#09,SMB30

MOVB16#9C,SMB87

MOVW+150,SMW92

MOVW+0,SMW90

MOVB50,SMB94

LDSM0.1初始化发送数据

MOVB16#08,VB2100

MOVB16#05,VB2101

MOVB16#03,VB2102

MOVB16#03,VB2103

MOVB16#0,VB2104

MOVB16#0,VB2105

MOVB16#02,VB2106

LDSM0.1初始化接收数据

MOVB16#09,VB1200

MOVB16#05,VB1201

MOVB16#03,VB1202

MOVB16#04,VB1203

LDSM0.0设定轮询时间

ANT96

TONT32,+150

LDSM0.0

AT32

TONT96,+150

LDT32

EU

LDC1

CTUC1,16#10

LDSM0.0

AW=16#0,C1

EU

MOVW16#0300,VW2103发送轮询数据

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#1,C1

EU

MOVW16#0302,VW2103

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#02,C1

EU

MOVW16#0304,VW2103

CALLCRC:SBR5

XMTVB2100,0

…………

LDSM0.7中断连接

ATCHINT_0:INT0,9

ATCHINT_1:INT1,23

ENI

SRB6(SBR5同SBR6)

LDAlways_On:SM0.0读出数据长度,初始化CRC字

MOVBVB1200,VB1301

MOVWVW1300,VW1302

-I16#02,VW1302

MOVW16#FFFF,VW1306

MOVDVB1200,VD1400

FORVW1304,16#1,VW1302

LDAlways_On:SM0.0字节异或循环

+D16#1,VD1400

MOVB*VD1400,VB1410

XORBVB1410,VB1307

FORVW1310,16#1,16#08

LDAlways_On:SM0.0移位循环

MOVWVW1306,VW1420

SRWVW1306,1

LDSM1.1公式异或

XORW16#A001,VW1306

NEXT

NEXT

LDAlways_On:SM0.0CRC16字传递

MOVBVB1307,VB1100

MOVBVB1306,VB1101

INT1

LDAlways_On:SM0.0

RCVVB2200,0

INT2

LDSM86.7

OSM86.6

OSM86.0

CRETI

LDAlways_On:SM0.0

MOVDVD2204,VD1204

LDAlways_On:SM0.0

CALLCRC16:SBR6

LDWVW1100,VW2208

CRETI

LDW=16#0,C1

MOVDVD2204,VD2500

LDW=16#1,C1

MOVDVD2204,VD2504

…………

地址分散,再加上要求每秒刷新,还要做数据的CRC校验,编写这样的通讯程序是有一定难度的,如果逐一地址的编写程序,那么程序就会过长,会影响总循环时间,不但做不到1秒钟刷新,可能还会引起端口发送、接收冲突和CRC校验出错,经过反复的研究实验,在程序中采用了用计数器来轮询地址的方法,从而减少了程序量和总循环时间。部分程序如下:

OB1

LDSM0.1初始化端口

MOVB16#09,SMB30

MOVB16#9C,SMB87

MOVW+150,SMW92

MOVW+0,SMW90

MOVB50,SMB94

LDSM0.1初始化发送数据

MOVB16#08,VB2100

MOVB16#05,VB2101

MOVB16#03,VB2102

MOVB16#03,VB2103

MOVB,nb,sp;16#0,VB2104

MOVB16#0,VB2105

MOVB16#02,VB2106

LDSM0.1初始化接收数据

MOVB16#09,VB1200

MOVB16#05,VB1201

MOVB16#03,VB1202

MOVB16#04,VB1203

LDSM0.0,;设定轮询时间

ANT96

TONT32,+150

LDSM0.0

AT32

TONT96,+150

LDT32

EU

LDC1

CTUC1,16#10

LDSM0.0

AW=16#0,C1

EU

MOVW16#0300,VW2103发送轮询数据

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#1,C1

EU

MOVW16#0302,VW2103

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#02,C1

EU

MOVW16#0304,VW2103

CALLCRC:SBR5

XMTVB2100,0

…………

LDSM0.7中断连接

ATCHINT_0:INT0,9

ATCHINT_1:INT1,23

ENI

SRB6(SBR5同SBR6)

LDAlways_On:SM0.0读出数据长度,初始化CRC字

MOVBVB1200,VB1301

MOVWVW1300,VW1302

-I16#02,VW1302

MOVW16#FFFF,VW1306

MOVDVB1200,VD1400

FORVW1304,16#1,VW1302

LDAlways_On:SM0.0字节异或循环

+D16#1,VD1400

MOVB*VD1400,VB1410

XORBVB1410,VB1307

FORVW1310,16#1,16#08

LDAlways_On:SM0.0移位循环

MOVWVW1306,VW1420

SRWVW1306,1

LDSM1.1公式异或

XORW16#A001,VW1306

NEXT

NEXT

LDAlways_On:SM0.0CRC16字传递

MOVBVB1307,VB1100

MOVBVB1306,VB1101

INT1

LDAlways_On:SM0.0

RCVVB2200,0

INT2

LDSM86.7

OSM86.6

OSM86.0

CRETI

LDAlways_On:SM0.0

MOVDVD2204,VD1204

LDAlways_On:SM0.0

CALLCRC16:SBR6

LDWVW1100,VW2208

CRETI

LDW=16#0,C1

MOVDVD2204,VD2500

LDW=16#1,C1

MOVDVD2204,VD2504

…………

经过改造的设备自2022年7月运行以来,系统稳定、功能强大、操作简单,赢得了用户的一致好评,为变电站的无人值守和变电站的安全运行提供了有利保障。

,,,,H-CN主站的程序,由于仪表提供的数据较多且数据地址分散,再加上要求每秒刷新,还要做数据的CRC校验,编写这样的通讯程序是有一定难度的,如果逐一地址的编写程序,那么程序就会过长,会影响总循环时间,不但做不到1秒钟刷新,可能还会引起端口发送、接收冲突和CRC校验出错,经过反复的研究实验,在程序中采用了用计数器来轮询地址的方法,从而减少了程序量和总循环时间。部分程序如下:(OB1主要功能为初始化端口为自由口,初始化发送和接收的数据格式,设定轮询时间,轮询和中断连接;SBR5和SBR6做发送和接收数据的CRC校验,CRC检验主要通过字节异或循环,移位循环和公式异或做发送数据的CRC校验;中断1为接收数据;中断2对接收CRC校验结果验证)

OB1

LDSM0.1初始化端口

MOVB16#09,SMB30

MOVB16#9C,SMB87

MOVW+150,SMW92

MOVW+0,SMW90

MOVB50,SMB94

LDSM0.1初始化发送数据

MOVB16#08,VB2100

MOVB16#05,VB2101

MOVB16#03,VB2102

MOVB16#03,VB2103

MOVB16#0,VB2104

MOVB16#0,VB2105

MOVB16#02,VB2106

LDSM0.1初始化接收数据

MOVB16#09,VB1200

MOVB16#05,VB1201

MOVB16#03,VB1202

MOVB16#04,VB1203

LDSM0.0设定轮询时间

ANT96

TONT32,+150

LDSM0.0

AT32

TONT96,+150

LDT32

EU

LDC1

CTUC1,16#10

LDSM0.0

AW=16#0,C1

EU

MOVW16#0300,VW2103发送轮询数据

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#1,C1

EU

MOVW16#0302,VW2103

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#02,C1

EU

MOVW16#0304,VW2103

CALLCRC:SBR5

XMTVB2100,0

…………

LDSM0.7中断连接

ATCHINT_0:INT0,9

ATCHINT_1:INT1,23

ENI

SRB6(SBR5同SBR6)

LDAlways_On:SM0.0读出数据长度,初始化CRC字

MOVBVB1200,VB1301

MOVWVW1300,VW1302

-I16#02,VW1302

MOVW16#FFFF,VW1306

MOVDVB1200,VD1400

FORVW1304,16#1,VW1302

LDAlways_On:SM0.0字节异或循环

+D16#1,VD1400

MOVB*VD1400,VB1410

XORBVB1410,VB1307

FORVW1310,16#1,16#08

LDAlways_On:SM0.0移位循环

MOVWVW1306,VW1420

SRWVW1306,1

LDSM1.1公式异或

XORW16#A001,VW1306

NEXT

NEXT

LDAlways_On:SM0.0CRC16字传递

MOVBVB1307,VB1100

MOVBVB1306,VB1101

INT1

LDAlways_On:SM0.0

RCVVB2200,0

INT2

LDSM86.7

OSM86.6

OSM86.0

CRETI

LDAlways_On:SM0.0

MOVDVD2204,VD1204

LDAlways_On:SM0.0

CALLCRC16:SBR6

LDWVW1100,VW2208

CRETI

LDW=16#0,C1

MOVDVD2204,VD2500

LDW=16#1,C1

MOVDVD2204,VD2504

…………

经过改造的设备自2022年7月运行以来,系统稳定、功能强大、操作简单,赢得了用户的一致好评,为变电站的无人值守和变电站的安全运行提供了有利保障。

,"class=MsoNormal2.0?mso-char-indent-count:char;LAYOUT-GRID-MODE:21pt;TEXT-INDENT:150%;LINE-HEIGHT:OB1

LDSM0.1初始化端口

MOVB16#09,SMB30

MOVB16#9C,SMB87

MOVW+150,SMW92

MOVW+0,SMW90

MOVB50,SMB94

LDSM0.1初始化发送数据

MOVB16#08,VB2100

MOVB16#05,VB2101

MOVB16#03,VB2102

MOVB16#03,VB2103

MOVB16#0,VB2104

MOVB16#0,VB2105

MOVB16#02,VB2106

LDSM0.1初始化接收数据

MOVB16#09,VB1200

MOVB16#05,VB1201

MOVB16#03,VB1202

MOVB16#04,VB1203

LDSM0.0设定轮询时间

ANT96

TONT32,+150

LDSM0.0

AT32

TONT96,+150

LDT32

EU

LDC1

CTUC1,16#10

LDSM0.0

AW=16#0,C1

EU

MOVW16#0300,VW2103发送轮询数据

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#1,C1

EU

MOVW16#0302,VW2103

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#02,C1

EU

MOVW16#0304,VW2103

CALLCRC:SBR5

XMTVB2100,0

…………

LDSM0.7中断连接

ATCHINT_0:INT0,9

ATCHINT_1:INT1,23

ENI

SRB6(SBR5同SBR6)

LDAlways_On:SM0.0读出数据长度,初始化CRC字

MOVBVB1200,VB1301

MOVWVW1300,VW1302

-I16#02,VW1302

MOVW16#FFFF,VW1306

MOVDVB1200,VD1400

FORVW1304,16#1,VW1302

LDAlways_On:SM0.0字节异或循环

+D16#1,VD1400

MOVB*VD1400,VB1410

XORBVB1410,VB1307

FORVW1310,16#1,16#08

LDAlways_On:SM0.0移位循环

MOVWVW1306,VW1420

SRWVW1306,1

LDSM1.1公式异或

XORW16#A001,VW1306

NEXT

NEXT

LDAlways_On:SM0.0CRC16字传递

MOVBVB1307,VB1100

MOVBVB1306,VB1101

INT1

LDAlways_On:SM0.0

RCVVB2200,0

INT2

LDSM86.7

OSM86.6

OSM86.0

CRETI

LDAlways_On:SM0.0

MOVDVD2204,VD1204

LDAlways_On:SM0.0

CALLCRC16:SBR6

LDWVW1100,VW2208

CRETI

LDW=16#0,C1

MOVDVD2204,VD2500

LDW=16#1,C1

MOVDVD2204,VD2504

…………

经过改造的设备自2022年7月运行以来,系统稳定、功能强大、操作简单,赢得了用户的一致好评,为变电站的无人值守和变电站的安全运行提供了有利保障。

,址分散,再加上要求每秒刷新,还要做数据的CRC校验,编写这样的通讯程序是有一定难度的,如果逐一地址的编写程序,那么程序就会过长,会影响总循环时间,不但做不到1秒钟刷新,可能还会引起端口发送、接收冲突和CRC校验出错,经过反复的研究实验,在程序中采用了用计数器来轮询地址的方法,从而减少了程序量和总循环时间。部分程序如下:

OB1

LDSM0.1初始化端口

MOVB16#09,SMB30

MOVB16#9C,SMB87

MOVW+150,SMW92

MOVW+0,SMW90

MOVB50,SMB94

LDSM0.1初始化发送数据

MOVB16#08,VB2100

MOVB16#05,VB2101

MOVB16#03,VB2102

MOVB16#03,VB2103

MOVB16#0,VB2104

MOVB16#0,VB2105

MOVB16#02,VB2106

LDSM0.1初始化接收数据

MOVB16#09,VB1200

MOVB16#05,VB1201

MOVB16#03,VB1202

MOVB16#04,VB1203

LDSM0.0设定轮询时间

ANT96

TONT32,+150

LDSM0.0

AT32

TONT96,+150

LDT32

EU

LDC1

CTUC1,16#10

LDSM0.0

AW=16#0,C1

EU

MOVW16#0300,VW2103发送轮询数据

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#1,C1

EU

MOVW16#0302,VW2103

CALLCRC:SBR5

XMTVB2100,0

LDSM0.0

AW=16#02,C1

EU

MOVW16#0304,VW2103

CALLCRC:SBR5

XMTVB2100,0

…………

LDSM0.7中断连接

ATCHINT_0:INT0,9

ATCHINT_1:INT1,23

ENI

SRB6(SBR5同SBR6)

LDAlways_On:SM0.0读出数据长度,初始化CRC字

MOVBVB1200,VB1301

MOVWVW1300,VW1302

-I16#02,VW1302

MOVW16#FFFF,VW1306,

FORVW1304,16#1,VW1302

LDAlways_On:SM0.0字节异或循环

+D16#1,VD1400

MOVB*VD1400,VB1410

XORBVB1410,VB1307

FORVW1310,16#1,16#08

LDAlways_On:SM0.0移位循环

MOVWVW1306,VW1420

SRWVW1306,1

LDSM1.1公式异或

XORW16#A001,VW1306

NEXT

NEXT

LDA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论