当前位置: 首页 > news >正文

8.26学习总结

#include <myhead.h>
void read_single_coil(char *send_buf)
{send_buf[0]=0x00;send_buf[1]=0x00;send_buf[2]=0x00;send_buf[3]=0x00;send_buf[4]=0x00;send_buf[5]=0x06;send_buf[6]=0x01;send_buf[7]=0x01;send_buf[8]=0x00;printf("请输入起始地址:");scanf("%hhx",&send_buf[9]);send_buf[10]=0x00;send_buf[11]=0x01;
}
void set_single_coil(char *send_buf)
{send_buf[0]=0x00;send_buf[1]=0x00;send_buf[2]=0x00;send_buf[3]=0x00;send_buf[4]=0x00;send_buf[5]=0x06;send_buf[6]=0x01;send_buf[7]=0x05;send_buf[8]=0x00;printf("请输入起始地址:");scanf("%hhx",&send_buf[9]);printf("置位或复位(FF/00):");scanf("%hhx",&send_buf[10]);send_buf[11]=0x00;
}
void set_coil(char *send_buf)
{send_buf[0]=0x00;send_buf[1]=0x00;send_buf[2]=0x00;send_buf[3]=0x00;send_buf[4]=0x00;send_buf[5]=0x06;send_buf[6]=0x01;send_buf[7]=0x01;send_buf[8]=0x00;printf("请输入起始地址:");scanf("%hhx",&send_buf[9]);send_buf[10]=0x00;printf("请输入读取个数:");scanf("%hhx",&send_buf[11]);
}
void read_single_register(char *send_buf)
{send_buf[0]=0x00;send_buf[1]=0x00;send_buf[2]=0x00;send_buf[3]=0x00;send_buf[4]=0x00;send_buf[5]=0x06;send_buf[6]=0x01;send_buf[7]=0x03;send_buf[8]=0x00;printf("请输入起始地址:");scanf("%hhx",&send_buf[9]);send_buf[10]=0x00;send_buf[11]=0x01;
}
void read_register(char *send_buf)
{send_buf[0]=0x00;send_buf[1]=0x00;send_buf[2]=0x00;send_buf[3]=0x00;send_buf[4]=0x00;send_buf[5]=0x06;send_buf[6]=0x01;send_buf[7]=0x03;send_buf[8]=0x00;printf("请输入起始地址:");scanf("%hhx",&send_buf[9]);send_buf[10]=0x00;printf("请输入读取个数:");scanf("%hhx",&send_buf[11]);
}
void set_register(char *send_buf)
{char i=0;send_buf[0]=0x00;send_buf[1]=0x00;send_buf[2]=0x00;send_buf[3]=0x00;send_buf[4]=0x00;send_buf[5]=0x00;send_buf[6]=0x01;send_buf[7]=0x10;send_buf[8]=0x00;printf("请输入起始地址:");scanf("%hhx",&send_buf[9]);send_buf[10]=0x00;printf("请输入读取个数:");scanf("%hhx",&send_buf[11]);send_buf[12]=send_buf[11]*2;for(i;i<send_buf[11];i++){printf("请输入第%d个寄存器的数据:",i+1);char value;scanf("%hhx",&value);send_buf[13+i*2]=0x00;send_buf[14+i*2]=value;}send_buf[5]=send_buf[12]+7;
}
int main(int argc, char const *argv[])
{char send_buf[128]="";printf("-----1.单线圈的读取-----\n");printf("-----2.单线圈的设置-----\n");printf("-----3.多线圈的设置-----\n");printf("-----4.单寄存器的读取-----\n");printf("-----5.多寄存器的读取-----\n");printf("-----6.多寄存器的设置-----\n");int choice;scanf("%d",&choice);switch(choice){case 1:memset(send_buf,0,sizeof(send_buf));read_single_coil(send_buf);break;case 2:memset(send_buf,0,sizeof(send_buf));set_single_coil(send_buf);break;case 3:memset(send_buf,0,sizeof(send_buf));set_coil(send_buf);break;case 4:memset(send_buf,0,sizeof(send_buf));read_single_register(send_buf);break;case 5:memset(send_buf,0,sizeof(send_buf));read_register(send_buf);break;case 6:memset(send_buf,0,sizeof(send_buf));set_register(send_buf);break;default:printf("invalid choice\n");}int cfd=socket(AF_INET,SOCK_STREAM,0);if(cfd==-1){perror("socket error");return -1;}struct sockaddr_in sin;sin.sin_family=AF_INET;sin.sin_port=htons(502);sin.sin_addr.s_addr=inet_addr("192.168.108.60");if(connect(cfd,(struct sockaddr*)&sin,sizeof(sin))==-1){perror("connect error");return -1;}printf("连接成功\n");char recv_buf[128]="";while(1){memset(recv_buf,0,sizeof(recv_buf));if(send(cfd,send_buf,sizeof(send_buf),0)==-1){perror("send error");return -1;}int len=recv(cfd,recv_buf,sizeof(recv_buf),0);for(int i=0;i<len;i++){printf("%02x ",recv_buf[i]);}printf("\n");}close(cfd);return 0;
}

http://www.dtcms.com/a/352567.html

相关文章:

  • 在 C# 中使用 Consul 客户端库实现服务发现
  • 卷积操作现实中的意义
  • 发力低空经济领域,移动云为前沿产业加速崛起注入云端动能
  • 微服务-24.网关登录校验-实现登录校验
  • Linux系统日志分析与存储
  • 机器学习:前篇
  • 从行业智能体到一站式开发平台,移动云推动AI智能体规模化落地
  • 产品经理操作手册(3)——产品需求文档
  • Duplicate Same Files Searcher v10.7.0,秒扫全盘重复档,符号链接一键瘦身
  • 【软件测试面试】全网最全,自动化测试面试题总结大全(付答案)
  • 告别出差!蓝蜂物联网网关让PLC程序远程修改零延迟
  • 二、JVM 入门 —— (四)堆以及 GC
  • 渗透测试术语大全(超详细)
  • C++ STL 顶层设计与安全:迭代器、失效与线程安全
  • 【C++游记】栈vs队列vs优先级队列
  • 算法编程实例-快乐学习
  • 随机森林实战:在鸢尾花数据集上与决策树和逻辑斯蒂回归进行对比
  • AI安全监控与人才需求的时间悖论(对AI安全模型、AI安全人才需求的一些思考)
  • AIDL和HIDL的AudioHal对比
  • Maya绑定基础: FK 和 IK 介绍和使用
  • lottie动画动态更改切图添加事件
  • 五自由度磁悬浮轴承:精准狙击转子质量不平衡引发的同频振动
  • pycharm 远程连接服务器报错
  • NeRAF、ImVid论文解读
  • 2007-2022年上市公司企业关联交易数据
  • 面向对象爬虫架构设计:构建高复用、抗封禁的爬虫系统​
  • 工业数据消费迎来“抖音式”革命:TDengine IDMP 让数据自己开口说话
  • 利用 Java 爬虫按关键字搜索 1688 商品详情 API 返回值说明实战指南
  • 如何在360极速浏览器中调出底部状态栏
  • Wireshark和USRP捕获同一信号波形差异原因