裴辅允历任宪院的宪法研讨官,复联曾在前总统朴槿惠弹劾案审理其时担任宪院公报官。
11.7ModbusTCP编程与试验本课程并没有支撑ModbusTCP协议的传感器,榜式所以运用将会编写2个程序:榜式①modbus_server_tcp.c:模仿一个ModbusTCP传感器②modbus_client_tcp.c:操作传感器程序结构如下图所示:在硬件上无需进行任何特别的衔接。11.7.3server等候恳求在modbus_server_tcp.c中,排片代码如下:排片左右滑动检查完好内容66while(1)67{68do{69rc=modbus_receive(ctx,query);70/*Filteredqueriesreturn0*/71}while(rc==0);72第69行:等候client发来恳求。

第63~64行:众艺这是跟ModbusRTU协议不同的当地,它们初始化socket,等候客户端衔接。11.7.2client初始化与建议衔接在modbus_client_tcp.c中,术片代码如下:术片左右滑动检查完好内容33ctx=modbus_new_tcp(argv[1],1502);34if(ctx==NULL){35fprintf(stderr,Unabletoallocatelibmodbuscontext);36return-1;37}3839modbus_set_slave(ctx,SERVER_ID);4041if(modbus_connect(ctx)==-1){42fprintf(stderr,Connectionfailed:%s,modbus_strerror(errno));43modbus_free(ctx);44return-1;45}第33行:分配一个modbus_t结构体,设置IP和端口。第60~61行:没活设置2个数组的值为0,这2个数组将用来跟Modbus寄存器进行比较,这样才干知道Client程序有没有修正这些值。

然后,复联在Ubuntu下履行如下指令进行编译:复联左右滑动检查完好内容$source/opt/remi-sdk/environment-setup-aarch64-poky-linux$make$scpmodbus_client_tcproot@192.168.5.9:/home/root$scpmodbus_server_tcproot@192.168.5.9:/home/root最终,在开发板上履行如下指令(先履行modbus_server):左右滑动检查完好内容#cd/home/root#./modbus_server_tcp127.0.0.1./modbus_client_tcp127.0.0.1led1onGetqueryforUID4setled1onmodbus_write_bitokConnectionclosed!#./modbus_client_tcp127.0.0.1readGetqueryforUID4Temprature=38.6C,Humity=49.2%GetqueryforUID4Temprature=64.9C,Humity=42.1%GetqueryforUID4Temprature=36.2C,Humity=2.7%需求产品及计划支撑。11.7.4client宣布恳求在modbus_client_tcp.c中,榜式代码如下:榜式左右滑动检查完好内容65if(!strcmp(argv[2],beep1))66addr=0;67if(!strcmp(argv[2],beep2))68addr=1;69if(!strcmp(argv[2],led1))70addr=2;71if(!strcmp(argv[2],led2))72addr=3;73if(!strcmp(argv[2],led3))74addr=4;7576if(addr==-1)77{78usage(argv[0]);79return-1;80}8182if(!strcmp(argv[3],on))83status=1;84else85status=0;8687rc=modbus_write_bit(ctx,addr,status);88if(rc==1)89{90printf(modbus_write_bitok);91}92else93{94printf(modbus_write_biterr:%d,%s,rc,strerror(errno));95}第65~85行:依据参数设置addr、status。

11.7.5server处理恳求并回应在modbus_server_tcp.c中,排片代码如下:排片左右滑动检查完好内容75if(rc>=0){7677printf(GetqueryforUID%d,query[6]);7879/*运用随机数模仿温度、湿度*/80mb_mapping->tab_input_registers[0]=rand()%1000;/*温度,单位:0.1C*/81mb_mapping->tab_input_registers[1]=rand()%1000;/*湿度,单位:0.1%*/8283rc=modbus_reply(ctx,query,rc,mb_mapping);84}85if(rc==-1){86printf(Connectionclosed!);87modbus_close(ctx);88modbus_tcp_accept(ctx,&s);89}9091/*依据client设置的数值,伪装操作蜂鸣器和LED*/92if(mb_mapping->tab_bits[0]!=old_bits[0])93{94printf(setbeep1%s,mb_mapping->tab_bits[0]?on:off);95old_bits[0]=mb_mapping->tab_bits[0];96}9798if(mb_mapping->tab_bits[1]!=old_bits[1])99{100printf(setbeep2%s,mb_mapping->tab_bits[1]?on:off);101old_bits[1]=mb_mapping->tab_bits[1];102}103104if(mb_mapping->tab_bits[2]!=old_bits[2])105{106printf(setled1%s,mb_mapping->tab_bits[2]?on:off);107old_bits[2]=mb_mapping->tab_bits[2];108}109110if(mb_mapping->tab_bits[3]!=old_bits[4])111{112printf(setled2%s,mb_mapping->tab_bits[4]?on:off);113old_bits[3]=mb_mapping->tab_bits[4];114}115116if(mb_mapping->tab_bits[4]!=old_bits[4])117{118printf(setled3%s,mb_mapping->tab_bits[4]?on:off);119old_bits[4]=mb_mapping->tab_bits[4];120}第77行:打印client端发来的恳求包里的设备地址,你能够依据这个设备地址去操作不同的设备,本程序未运用它。
第47行:众艺设置自己的传感器地址,众艺这行被注释掉了,在ModbusTCP协议里,即便客户端运用不同的设备地址发来恳求,server端都会接收到这些一切恳求(它疏忽设备地址)为强化工业展开人才支撑,术片陕西将施行双演示双高方案建造,推动优质高级职业教育资源下沉县域中职校园,展开陕西特征学徒制培养。
陕西将继续推动一县一策事项清单落地收效,没活完善主导工业项目库,没活引导严重工业项目在乡镇化要点县优势集群布局,有序接受先进工业和头部企业梯度搬运。《施行方案》结合陕西实践情况,复联决议从继续提高农业搬运人口市民化质量推动县域乡镇化水平稳步提高加速培养现代化西安都市圈施行城市更新和安全耐性提高举动4方面合计21条办法健全我省推动新式乡镇化体系机制。
《施行方案》进一步深化户籍制度变革,榜式全省除西安市外将全面施行实践作业+实践寓居落户的户口搬迁方针,榜式撤销落户约束,完成省内户口通迁,并充分发挥寓居证实践持有时刻省内互认方针功效,在街道社区建立公共户口为租房落户供给便当,继续展开减证便民举动,全面完成户口搬迁事务和开具户籍类证明事项跨省通办。一起,排片支撑县域会集资源建造省级以上开发区,推动工业用地规范地供给变革,提高园区设备和服务规范化水平,鼓舞引进专业化运营主体。 |