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

桐乡网站建设seo平台怎么样

桐乡网站建设,seo平台怎么样,新手如何开微商城店,wordpress 发布分离1#xff0c;不要在虚拟机测试#xff0c;否则IgH无法收发数据包 现象#xff1a;虚拟机中运行IgH master并绑定网卡后#xff0c;主站由ORPHANED状态转换成IDLE状态#xff0c;但无法收发数据报。 这是因为虚拟机用的是虚拟网卡#xff0c;需通过iptables将数据包到转…1不要在虚拟机测试否则IgH无法收发数据包 现象虚拟机中运行IgH master并绑定网卡后主站由ORPHANED状态转换成IDLE状态但无法收发数据报。 这是因为虚拟机用的是虚拟网卡需通过iptables将数据包到转发到真实的网卡上实现收发数据的目的。但IgH替换了网卡驱动程序收到数据包后处理流程没有走内核的网络协议栈所以工作中tcp/ip层的iptables就不起作用导致IgH无法正常收发报文。 虚拟机网络原理参考ubuntu20.04 搭建kernel调试环境第六篇下-网络原理-CSDN博客   解决物理机安装ubuntu用来测试IgH。 2获取IgH的INFO、WARNING、ERR信息 rootubuntu:/home/gsf# echo 7 7 7 7 /proc/sys/kernel/printk #define EC_MASTER_INFO(master, fmt, args...) \printk(KERN_INFO EtherCAT %u: fmt, master-index, ##args)#define EC_MASTER_WARN(master, fmt, args...) \printk(KERN_WARNING EtherCAT WARNING %u: fmt, master-index, ##args)#define EC_MASTER_ERR(master, fmt, args...) \printk(KERN_ERR EtherCAT ERROR %u: fmt, master-index, ##args) 3获取IgH的DEBUG信息 rootubuntu:/home/gsf# vim /etc/init.d/ethercat #MASTER_ARGS 改成下面MASTER_ARGSdebug_level2 务必注意注意make modules_install install后需要重新修改 DEBUG主要是输出一些收发报文的数据比如 [73996.353863] EtherCAT DEBUG 0: ec_master_send_datagrams(device_index 0) [73996.353863] EtherCAT DEBUG 0: Adding datagram 0x2E [73996.353864] EtherCAT DEBUG 0: frame size: 46 [73996.353864] EtherCAT DEBUG 0: Sending frame: [73996.353864] EtherCAT DEBUG: FF FF FF FF FF FF 6C 24 08 29 52 19 88 A4 0E 10 [73996.353867] EtherCAT DEBUG: 05 2E 01 00 20 01 02 00 00 00 02 00 00 00 00 00 [73996.353869] EtherCAT DEBUG: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [73996.353871] EtherCAT DEBUG: 00 00 00 00 00 00 00 00 00 00 00 00 4dmesg日志不全 现象IgH源码中加了很多打印连接从站后发现dmesg会失了部分日志。 下面的下图显示的是ec_master_idle_thread -- ecrt_master_send -- ec_master_send_datagrams发送数据报文时增加的printk打印。 datagram-index用的是master-datagram_index初始化是master-datagram_index为0所以所有主站发送的数据报文的index应该是从0递增的最大值255master-datagram_index是uint8_t类型到最大值后又从0开始计数。 原因主站初始化时ec_master_idle_thread线程循环执行循环时间比较短见下面代码 ec_master_idle_thread函数if (ec_fsm_master_idle(master-fsm)) {set_current_state(TASK_INTERRUPTIBLE);schedule_timeout(1); --------------- 1个jiffies} else {schedule(); ---------切换到其他线程执行如果系统空闲会继续执行该线程} 不接从站printk信息比较少可以完整输出。接上从站代码流程复杂自己加了很多printk由于循环时间短每轮循环都有大量的信息来不及输出就丢失了部分log。 解决 方法一直接修改主站的循环周期 ec_master_idle_thread函数//ec_master_set_send_interval(master, 1000000 / HZ); ec_master_set_send_interval(master, 5000000); -------改动1主站周期从4ms改成5sif (ec_fsm_master_idle(master-fsm)) {// set_current_state(TASK_INTERRUPTIBLE);// schedule_timeout(1); msleep(100); ----------改动2注掉上面2行} else {//schedule(); msleep(100); ----------改动2注掉上面1行} 方法二间接修改主站的循环周期 因为ec_master_idle_thread 每个周期都会执行ecrt_master_send -- ec_master_send_datagrams发送数据报文所以可以在发送报文时加个延时 ec_master_idle_thread函数//ec_master_set_send_interval(master, 1000000 / HZ); ec_master_set_send_interval(master, 5000000); -------改动1主站周期从4ms改成5s-----------------------------------------------------------------------------void ec_master_send_datagrams(ec_master_t *master, /** EtherCAT master */ec_device_index_t device_index /** Device index. */) {do {frame_data NULL;follows_word NULL;more_datagrams_waiting 0;// fill current frame with datagramslist_for_each_entry(datagram, master-datagram_queue, queue) {if (datagram-state ! EC_DATAGRAM_QUEUED ||datagram-device_index ! device_index) {continue;}……list_add_tail(datagram-sent, sent_datagrams);datagram-index master-datagram_index;EC_MASTER_DBG(master, 2, Adding datagram 0x%02X\n,datagram-index);msleep(100); ------------在这里加个延时 修改后log是全的。报文从0开始发送、接收是一一对应的 5过滤掉IgH主站插网线之前的log IgH主站网卡没有插网线意味着网卡的link_state处于down状态ec_master_idle_thread周期性执行ecrt_master_send发送数据报文在ecrt_master_send中如果网卡处于link down状态则会设置报文为EC_DATAGRAM_ERROR在这里加个printk见下代码log中过滤关键字EC_DATAGRAM_ERROR就可以了。 void ecrt_master_send(ec_master_t *master) {ec_datagram_t *datagram, *n;ec_device_index_t dev_idx;if (master-injection_seq_rt ! master-injection_seq_fsm) {// inject datagram produced by master FSMec_master_queue_datagram(master, master-fsm_datagram);master-injection_seq_rt master-injection_seq_fsm;}ec_master_inject_external_datagrams(master);for (dev_idx EC_DEVICE_MAIN; dev_idx ec_master_num_devices(master);dev_idx) {if (unlikely(!master-devices[dev_idx].link_state)) {// link is down, no datagram can be sentlist_for_each_entry_safe(datagram, n,master-datagram_queue, queue) {if (datagram-device_index dev_idx) {//在这里加行logprintk(KERN_ERR geshifei %s %d: set datagram-state EC_DATAGRAM_ERROR\n,__func__, __LINE__);datagram-state EC_DATAGRAM_ERROR;list_del_init(datagram-queue);}} 6IgH发送、接收的报文怎么看 以IgH读从站状态的广播报文0x0130为例打开DEBUG后demsg看到的报文 发送报文 [18773.590655] geshifei ec_master_send_datagrams 1059:  Adding datagram datagram-index0 [18773.590656] EtherCAT DEBUG 0: frame size: 46 [18773.590656] EtherCAT DEBUG 0: Sending frame: [18773.590658] EtherCAT DEBUG: FF FF FF FF FF FF 6C 24 08 29 52 19 88 A4 0E 10  [18773.590664] EtherCAT DEBUG: 07 00 00 00 30 01 02 00 00 00 00 00 00 00 00 00  [18773.590669] EtherCAT DEBUG: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  [18773.590674] EtherCAT DEBUG: 00 00 00 00 00 00 00 00 00 00 00 00  响应报文 [18773.710617] EtherCAT DEBUG 0: Received frame: [18773.710618] EtherCAT DEBUG: FF FF FF FF FF FF 6E 24 08 29 52 19 88 A4 0E 10  [18773.710624] EtherCAT DEBUG: 07 00 01 00 30 01 02 00 00 00 02 00 01 00 00 00  [18773.710628] EtherCAT DEBUG: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  [18773.710633] EtherCAT DEBUG: 00 00 00 00 00 00 00 00 00 00 00 00  [18773.710636] geshifei ec_master_receive_datagrams 1224:  datagram-index0 7wireshark报文怎么看 1注意source mac被从站改动过为什么改不清楚感觉没必要。 2正常情况下发送的报文WC 0响应报文的WC不为0存在从站的情况下 所以可通过上面两个特征来判断哪个是发送报文哪个是接收报文。 datagram-index用的是master-datagram_index初始化是master-datagram_index为0所以所有主站发送的数据报文的index应该是从0递增的最大值255master-datagram_index是uint8_t类型到最大值后又从0开始计数。 响应的报文不会也不能修改Index值因为IgH主站程序收到响应报文后需要根据报文的index去匹配对应的发送报文然后将发送报文从内部的发送队列中删除。
http://www.zqtcl.cn/news/334566/

相关文章:

  • 沛县网站设计html制作网页的代码
  • 南昌网站建设公司如何万维网络(临沂网站建设)
  • 张家界做网站洛阳网站建设哪家专业
  • 快餐网站模板电子版邀请函制作软件免费
  • 有什么做视频的素材网站网站名称注册保护
  • 北京 顺义 网站制作h5网站网站建设
  • 网站在百度上搜不到了wordpress导航菜单加图片
  • wordpress网站访问慢网站建设35类
  • 绍兴做网站价格字体
  • asp.net网站开发实训可以不花钱做网站吗
  • 北京网站的制作设计服务器和电脑主机的区别
  • 北京网站建设的服务公司凡科网站 怎么开支付
  • 包头公司做网站知名做网站费用
  • 安徽网站建设服务平台重庆网站建公司大全
  • 有什么网站可以做中间人的相城区建设局网站
  • 房屋装修在线设计网站百度联盟广告怎么屏蔽
  • 网站,商城,app+建设域名网址注册
  • 肥西做网站设计网页页面
  • 怎样做百度推广网站iis服务器的默认网站
  • 东莞建设工程交易中心门户网站湖南设计网站机构
  • 做网站在网站建设客户
  • 河北建设厅安监站官方网站一个新手怎么做电商
  • 做结婚请柬网站有那些做网店哪个网站好
  • 做网站尽在美橙互联欧美简约风格网站设计
  • idea建设完整的网站微官网下载
  • 阿城区建设小学网站上海建设行政主管部门政务网站
  • 西丽网站建设网站怎样做才能有点击率
  • 网站建设图片大小建设部网站1667号公告
  • 做wps的网站赚钱网站建设中网站图片如何修改
  • 公司招商型网站建设怎么自己做网站挣钱