实例介绍
项目是围绕电网规约101规约(DL/T634.5101-2002)和104规约(DL/T634.5104-2009),项目基于Java语言。 可以完成规约的内容解析工作和组装工作。可用于实际场景的把发送报文的生成等工作。
【文件目录】
101_104规约解析
├── LICENSE
├── README.md
├── docs
│ ├── 附件1:广东电网配网自动化101规约实施细则(试行).docx
│ ├── 附件2:广东电网配网自动化104规约实施细则(试行).docx
│ └── 附件3:规约解析细则.xlsx
├── iec.iml
├── iec_analysis
│ ├── iec_analysis.iml
│ ├── pom.xml
│ ├── src
│ │ ├── main
│ │ │ └── java
│ │ │ └── com
│ │ │ └── iec
│ │ │ ├── analysis
│ │ │ │ ├── common
│ │ │ │ │ ├── BalancedLinkCode.java
│ │ │ │ │ ├── TransferReason.java
│ │ │ │ │ └── TypeIdentifier.java
│ │ │ │ ├── exception
│ │ │ │ │ ├── CsCheckException.java
│ │ │ │ │ ├── CustomException.java
│ │ │ │ │ ├── IllegalFormatException.java
│ │ │ │ │ ├── LengthException.java
│ │ │ │ │ ├── UnknownLinkCodeException.java
│ │ │ │ │ ├── UnknownTransferReasonException.java
│ │ │ │ │ └── UnknownTypeIdentifierException.java
│ │ │ │ ├── protocol101
│ │ │ │ │ ├── ASDU.java
│ │ │ │ │ ├── Analysis.java
│ │ │ │ │ ├── Control.java
│ │ │ │ │ └── InformationBody
│ │ │ │ │ ├── InfoElement.java
│ │ │ │ │ ├── ParamePreset.java
│ │ │ │ │ ├── SystemCommand.java
│ │ │ │ │ ├── Telecontrol.java
│ │ │ │ │ ├── Telemetry.java
│ │ │ │ │ └── Telesignalling.java
│ │ │ │ └── protocol104
│ │ │ │ ├── ASDU.java
│ │ │ │ ├── Analysis.java
│ │ │ │ ├── ParamePreset104.java
│ │ │ │ ├── Telecontrol104.java
│ │ │ │ ├── Telemetry104.java
│ │ │ │ └── Telesignalling104.java
│ │ │ ├── assemble101
│ │ │ │ ├── ContinuousAddressBuilder.java
│ │ │ │ ├── UnContinuousAddressBuilder.java
│ │ │ │ └── VariableLengthPacket.java
│ │ │ ├── assemble104
│ │ │ │ ├── ContinuousAddressBuilder.java
│ │ │ │ ├── UnContinuousAddressBuilder.java
│ │ │ │ └── VaribleLengthPacket.java
│ │ │ └── utils
│ │ │ └── Util.java
│ │ └── test
│ │ └── java
│ │ └── com
│ │ └── iec
│ │ └── test
│ │ ├── Analysis101Test.java
│ │ └── Analysis104Test.java
│ └── target
│ ├── classes
│ │ └── com
│ │ └── iec
│ │ ├── analysis
│ │ │ ├── common
│ │ │ │ ├── BalancedLinkCode.class
│ │ │ │ ├── TransferReason.class
│ │ │ │ └── TypeIdentifier.class
│ │ │ ├── exception
│ │ │ │ ├── CsCheckException.class
│ │ │ │ ├── CustomException.class
│ │ │ │ ├── IllegalFormatException.class
│ │ │ │ ├── LengthException.class
│ │ │ │ ├── UnknownLinkCodeException.class
│ │ │ │ ├── UnknownTransferReasonException.class
│ │ │ │ └── UnknownTypeIdentifierException.class
│ │ │ ├── protocol101
│ │ │ │ ├── ASDU.class
│ │ │ │ ├── Analysis.class
│ │ │ │ ├── Control.class
│ │ │ │ └── InformationBody
│ │ │ │ ├── InfoElement.class
│ │ │ │ ├── ParamePreset.class
│ │ │ │ ├── SystemCommand.class
│ │ │ │ ├── Telecontrol.class
│ │ │ │ ├── Telemetry.class
│ │ │ │ └── Telesignalling.class
│ │ │ └── protocol104
│ │ │ ├── ASDU.class
│ │ │ ├── Analysis.class
│ │ │ ├── ParamePreset104.class
│ │ │ ├── Telecontrol104.class
│ │ │ ├── Telemetry104.class
│ │ │ └── Telesignalling104.class
│ │ ├── assemble101
│ │ │ ├── ContinuousAddressBuilder.class
│ │ │ ├── UnContinuousAddressBuilder.class
│ │ │ └── VariableLengthPacket.class
│ │ ├── assemble104
│ │ │ ├── ContinuousAddressBuilder.class
│ │ │ ├── UnContinuousAddressBuilder.class
│ │ │ └── VaribleLengthPacket.class
│ │ └── utils
│ │ └── Util.class
│ ├── generated-sources
│ │ └── annotations
│ ├── generated-test-sources
│ │ └── test-annotations
│ └── test-classes
│ └── com
│ └── iec
│ └── test
│ ├── Analysis101Test.class
│ └── Analysis104Test.class
├── iec_interaction
│ ├── iec_interaction.iml
│ └── pom.xml
└── pom.xml
43 directories, 79 files
【核心代码】
Apdu apdu = new Apdu(new DataInputStream(is));
if (apdu.getApciType() == Apdu.ApciType.I_FORMAT) {
Asdu asdu = apdu.getAsdu();
//处理I命令
handleData(asdu.getTypeId(), asdu.getInformationObjects());
//返回S确认命令
int receiveSeqNum = apdu.getSendSeqNumber() 1;
byte[] recNum = new byte[2];
recNum[0] = (byte) (receiveSeqNum << 1);
recNum[1] = (byte) (receiveSeqNum >> 7);
String recStr = ChangeUtils.toHexString(recNum);
os.write(ChangeUtils.hexStringToBytes("68040100" recStr));
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论