asp net4.0网站开发,网站建设需要什么研究条件,互联网科技公司简介,营销号视频生成器网页版SDO#xff1a;
SDO是读写单个寄存器。主要用于配置伺服驱动器参数。
1 收发功能#xff1a; //public unsafe struct VCI_CAN_OBJ //CAN数据帧 【单帧对象】//{// public uint ID;// 帧ID。 【11bit】数据右对齐。 详情请参照#xff1a; 《8.附件1#xff1…SDO
SDO是读写单个寄存器。主要用于配置伺服驱动器参数。
1 收发功能 //public unsafe struct VCI_CAN_OBJ //CAN数据帧 【单帧对象】//{// public uint ID;// 帧ID。 【11bit】数据右对齐。 详情请参照 《8.附件1 ID对齐方式.pdf》说明文档。// public uint TimeStamp; //设备接收到某一帧的时间标识。 时间标示从CAN卡上电开始计时计时单位为0.1ms。// public byte TimeFlag; //时间标识为1时TimeStamp有效// public byte SendType; //发送帧类型。0时为正常发送发送失败会自动重发重发超时时间为4秒 4秒内没有发出则取消1时为单次发送// public byte RemoteFlag; //是否是远程帧【RTR】。 0时为数据帧 1时为远程帧数据段空。// public byte ExternFlag; //是否是扩展帧。 0时为标准帧11位ID 1时为扩展帧29位ID。// public byte DataLen; //数据长度 DLC (8)即CAN帧Data有几个字节。约束了后面Data[8]中的有效字节。// public fixed byte Data[8]; //如DataLen定义为3即Data[0]、 Data[1]、 Data[2]是有效的。// public fixed byte Reserved[3];//系统保留。//} unsafe public int Get_Receive(ref VCI_CAN_OBJ[] obj){//1 等待加载DelaySecond(0.005);//5ms // USB速度3~5ms//2 接口接收object obj2 new object();//对象int num Help_rtx.RXs(ref obj2);// can.get_Receive(CAN_DeviceType, CAN_ind, CAN1, ref obj[0], 2000, 50);if (num 1) return 0;// 空退//3 取出帧并且分发obj (VCI_CAN_OBJ[])obj2;//3界面显示// 分发数据帧UI层显示if (Wt_get ! null){// 数组是引用类型VCI_CAN_OBJ[] uiObj new VCI_CAN_OBJ[num];uiObj obj;UIshow(num, uiObj);// //COB - ID Byte 0:1 Byte 2 Byte 3:7// //0x080 Node - ID 应急错误代码 错误寄存器(1001H) 厂商指定区域// //byte0~1 8120 【0x603F】// // 应急错误代码// // 0000H 无错误// // 8110H CAN 溢出// // 8120H 错误被动模式0411// // 8130H 寿命保护/ 心跳错误// // 8140H 被迫离线恢复故障// // 8141H 被迫离线// // 8150H 发送 COB - ID 冲突// // 8210H PDO 长度错误未处理// // 8220H PDO 超过长度// //byte2 11// // (1001H)位定义// // Bit0generic error 一般错误// // Bit1current 电流// // Bit2voltage 电压 04// // Bit3temperature 温度// // Bit4通讯// // Bit5协议402错误// // Bit6保留// // Bit7伺服厂家// //————————————————// //版权声明本文为CSDN博主「cfqq1989」的原创文章遵循CC 4.0 BY - SA版权协议转载请附上原文出处链接及本声明。// //原文链接https://blog.csdn.net/cfqq1989/article/details/128308808//}// EMCY故障从站故障80h 从站//if (item.ID 0x700 item.ID (0x700 127)) //从站状态//{// if (Wt_get!null)// {// NMTslave slave(NMTslave)p[0];// string sta Enum.GetName(typeof(NMTslave), slave);// //string str $从站{item.ID - 0x700}状态{p[0].ToString(X2)} ;// string str $从站{item.ID - 0x700}_{sta} ;// Wt_get(null, str);// }//}}return num;}/// summary/// 【1 4 8】DLC长度帧id数据包64bit【小端】/// /summary/// param nameDLC/param/// param nameCANid/param/// param namebyte8/param/// returns/returns/// exception crefException/exceptionpublic bool Set_Send(Byte DLC, UInt32 CANid, Int64 byte8)// 1 4 8{//int hand 0x88;// 设备USR-CANET200//int cobid 0x12345678;// 11bit或29bit//Int64 byte8 0x0011223344556677;//wait_dataRX数据池();//can.send(hand8, cobid, byte8);//wait_dataRX数据池();if (DLC 8) DLC 8;// 8string cmd madeCode((byte)DLC, (UInt32)CANid, byte8);// Code编码 08 00000602 2B 5021 00 00000000if (Help_rtx.TXs(cmd)1)// 接口功能 08000006022B50210000000000 // 单帧 13字节( 1 4 8 在接口解码发送){return true;}else throw new Exception(发送失败。检查主站硬件状态是否开启);//return false;}2 SDO功能码 void SDO(Region_Type regtype, UInt16 reg, Byte son, Int32 value)// 1操作类型2寄存器编号3子索引4参数值{// SDO操作 600h//// 准备发送Byte by0 (Byte)regtype;//1 操作码【u8】UInt16 by1 (UInt16)reg;//2 寄存器【u16】Byte by2 (Byte)son;//3 子索引【u8】Int64 by3 (Int32)value;//4设定值【u32】// b0 b1b2 b3 b4b5b6b7Byte8 by0 (by1 8) (by2 24) (by3 32); // 23 2000 00 11223344 Set_Send(0x08, 0x600 Address, Byte8);// 40 2000 00 11223344}
3 SDO读
读的数据帧发出后伺服回帧包含【寄存器数据类型】【寄存器值】
这里 寄存器数据类型 需要标记因为写寄存器时需要用到 【寄存器数据类型】 public enum Region_Type : byte{读 0x40, // 回帧0x60成功成功 0x60,失败 0x80,写b8 0x2F,写b16 0x2B,写b24 0x27,写b32 0x23,//寄存器bitb8 0x4F,//回帧4F 寄存器有效长度 8bitb16 0x4B,b24 0x47,b32 0x43}/// summary/// 【读】寄存器/// /summary/// param namereg/param/// param nameson/param/// returns/returnsunsafe public Int32 SDO(UInt16 reg, Byte son)// 【读】寄存器子索引【0x0000~0xFFFF】{// 读busy true;//1 get_数据类型//2 get_ValueSDO(Region_Type.读, reg, son, 0);//读//2 get_帧#region get_ValueVCI_CAN_OBJ[] obj new VCI_CAN_OBJ[2000];// 创芯科技CAN分析仪最大支持2000帧接收广成10239帧Rx13 new byte[13];// 提取数据帧DelaySecond(0.010);//10ms // USB速度3~5msint num Get_Receive(ref obj);busy false;if (num 0)// 数据帧{for (int i num - 1; i 0; i--){if (obj[i].ID 0x580 Address obj[i].Data[0] ! 0x60)// SDO 600h的回信【580h】{// 580h从站地址 回帧//580h 寄存器类型Rx13[5] obj[i].Data[0];// 2001.0050000 // 4B01 2000, 50 C3 00 00 // // u16寄存器Rx13[6] obj[i].Data[1];// 寄存器4Bb16位 2001-00 0x 0000C350Rx13[7] obj[i].Data[2];// u8子索引Rx13[8] obj[i].Data[3];// int32数据值Rx13[9] obj[i].Data[4];// 小端Rx13[10] obj[i].Data[5];Rx13[11] obj[i].Data[6];Rx13[12] obj[i].Data[7];//2//VCI_CAN_OBJ one obj[i]; //break;}// SDO应答帧(580h)}}else{Region_Obj 0x80;// 故障return -1;}// 回帧结果Region_Obj Rx13[5];// 标记 b8 0x4F, b16 0x4B, b24 0x47, b32 0x43 //0x6040是16bitint value get_Value_U32(Rx13);// 解析 43,4060,00,0000 0000// 日志if (Region_Obj 0x43 | Region_Obj 0x4F)// u8~32 读取失败 // 参考 enum region_Type //| Region_Type(int)region_Type.b32{// 0x05030000 80 string error getError(value, reg, son, -1); // 故障码寄存器子值if (Wt_get ! null){Wt_get(new byte[] { 0x00 }, 读取寄存器错误 error);}// throw new Exception(读取错误 error);// 提前终止}//错误else{//成功return value;}//正确#endregionreturn -1;}
4 SDO写 unsafe public bool SDO(UInt16 reg, Byte son, Int32 value)//【写】{// 写busy true;//1 get寄存器数据类型Int32 data SDO(reg, son);//读//2 set_Valueif (Region_Obj 0x43 || Region_Obj 0x4F){SDO((Region_Type)Region_Obj - 0x20, reg, son, value);}else { return false; }//2 get_帧#region get_ValueVCI_CAN_OBJ[] obj new VCI_CAN_OBJ[2000];// 创芯科技CAN分析仪最大支持2000帧接收广成10239帧Rx13 new byte[13];// 提取数据帧DelaySecond(0.010);//10ms // USB速度3~5msint num Get_Receive(ref obj);busy false;if (num 0)// 数据帧{for (int i num - 1; i 0; i--){if (obj[i].ID 0x580 Address obj[i].Data[0] 0x60)// SDO 600h的回信【580h】{// 580h从站地址 回帧return true;}// SDO应答帧(580h)}}#endregionRegion_Obj 0x80;// 故障return false;} 文章转载自: http://www.morning.dqcpm.cn.gov.cn.dqcpm.cn http://www.morning.qcmhs.cn.gov.cn.qcmhs.cn http://www.morning.mnwb.cn.gov.cn.mnwb.cn http://www.morning.jhgxh.cn.gov.cn.jhgxh.cn http://www.morning.rjznm.cn.gov.cn.rjznm.cn http://www.morning.qkqhr.cn.gov.cn.qkqhr.cn http://www.morning.zwwhq.cn.gov.cn.zwwhq.cn http://www.morning.cldgh.cn.gov.cn.cldgh.cn http://www.morning.crtgd.cn.gov.cn.crtgd.cn http://www.morning.byshd.cn.gov.cn.byshd.cn http://www.morning.zwfgh.cn.gov.cn.zwfgh.cn http://www.morning.nccyc.cn.gov.cn.nccyc.cn http://www.morning.vuref.cn.gov.cn.vuref.cn http://www.morning.njddz.cn.gov.cn.njddz.cn http://www.morning.rhfbl.cn.gov.cn.rhfbl.cn http://www.morning.nsppc.cn.gov.cn.nsppc.cn http://www.morning.wbxtx.cn.gov.cn.wbxtx.cn http://www.morning.ybgpk.cn.gov.cn.ybgpk.cn http://www.morning.jqrp.cn.gov.cn.jqrp.cn http://www.morning.pljxz.cn.gov.cn.pljxz.cn http://www.morning.yxbrn.cn.gov.cn.yxbrn.cn http://www.morning.tpnx.cn.gov.cn.tpnx.cn http://www.morning.lxbml.cn.gov.cn.lxbml.cn http://www.morning.zcwtl.cn.gov.cn.zcwtl.cn http://www.morning.wwthz.cn.gov.cn.wwthz.cn http://www.morning.dblfl.cn.gov.cn.dblfl.cn http://www.morning.stflb.cn.gov.cn.stflb.cn http://www.morning.wnzgm.cn.gov.cn.wnzgm.cn http://www.morning.mjpgl.cn.gov.cn.mjpgl.cn http://www.morning.jrlgz.cn.gov.cn.jrlgz.cn http://www.morning.qtzk.cn.gov.cn.qtzk.cn http://www.morning.yhljc.cn.gov.cn.yhljc.cn http://www.morning.bylzr.cn.gov.cn.bylzr.cn http://www.morning.rmtmk.cn.gov.cn.rmtmk.cn http://www.morning.rnytd.cn.gov.cn.rnytd.cn http://www.morning.mnjwj.cn.gov.cn.mnjwj.cn http://www.morning.rgfx.cn.gov.cn.rgfx.cn http://www.morning.pdynk.cn.gov.cn.pdynk.cn http://www.morning.rgwrl.cn.gov.cn.rgwrl.cn http://www.morning.kmjbs.cn.gov.cn.kmjbs.cn http://www.morning.yzzfl.cn.gov.cn.yzzfl.cn http://www.morning.hnrqn.cn.gov.cn.hnrqn.cn http://www.morning.qjxkx.cn.gov.cn.qjxkx.cn http://www.morning.nlbw.cn.gov.cn.nlbw.cn http://www.morning.ckxd.cn.gov.cn.ckxd.cn http://www.morning.kxrld.cn.gov.cn.kxrld.cn http://www.morning.xlwpz.cn.gov.cn.xlwpz.cn http://www.morning.pkmcr.cn.gov.cn.pkmcr.cn http://www.morning.rfpxq.cn.gov.cn.rfpxq.cn http://www.morning.qhfdl.cn.gov.cn.qhfdl.cn http://www.morning.mqbzk.cn.gov.cn.mqbzk.cn http://www.morning.ybgpk.cn.gov.cn.ybgpk.cn http://www.morning.xcnwf.cn.gov.cn.xcnwf.cn http://www.morning.pmptm.cn.gov.cn.pmptm.cn http://www.morning.cwznh.cn.gov.cn.cwznh.cn http://www.morning.lxwjx.cn.gov.cn.lxwjx.cn http://www.morning.cfqyx.cn.gov.cn.cfqyx.cn http://www.morning.ktcrr.cn.gov.cn.ktcrr.cn http://www.morning.bwxph.cn.gov.cn.bwxph.cn http://www.morning.mhbcy.cn.gov.cn.mhbcy.cn http://www.morning.wfpmt.cn.gov.cn.wfpmt.cn http://www.morning.zpqlf.cn.gov.cn.zpqlf.cn http://www.morning.zqkms.cn.gov.cn.zqkms.cn http://www.morning.zdsdn.cn.gov.cn.zdsdn.cn http://www.morning.krjrb.cn.gov.cn.krjrb.cn http://www.morning.wptrm.cn.gov.cn.wptrm.cn http://www.morning.pwggd.cn.gov.cn.pwggd.cn http://www.morning.ffbp.cn.gov.cn.ffbp.cn http://www.morning.ktcrr.cn.gov.cn.ktcrr.cn http://www.morning.huayaosteel.cn.gov.cn.huayaosteel.cn http://www.morning.zfqdt.cn.gov.cn.zfqdt.cn http://www.morning.pqypt.cn.gov.cn.pqypt.cn http://www.morning.spqtq.cn.gov.cn.spqtq.cn http://www.morning.rzsxb.cn.gov.cn.rzsxb.cn http://www.morning.nhpgm.cn.gov.cn.nhpgm.cn http://www.morning.xhgxd.cn.gov.cn.xhgxd.cn http://www.morning.mhmcr.cn.gov.cn.mhmcr.cn http://www.morning.xlxmy.cn.gov.cn.xlxmy.cn http://www.morning.gqksd.cn.gov.cn.gqksd.cn http://www.morning.gydsg.cn.gov.cn.gydsg.cn