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

哪个网站名片做的号百度推广免费

哪个网站名片做的号,百度推广免费,做网站图标的软件,免费空间分享系列文章目录 前言 CANopen 标准的 Python 实现。该项目的目的是在一个简单的 Pythonic 接口中支持 CiA 301 标准中最常见的部分。它主要针对测试和自动化任务,而不是符合标准的主实施。 该库支持 Python 3.6 及以上版本。 一、特点 该库主要用作主库。 NMT 主站…

系列文章目录


前言

CANopen 标准的 Python 实现。该项目的目的是在一个简单的 Pythonic 接口中支持 CiA 301 标准中最常见的部分。它主要针对测试和自动化任务,而不是符合标准的主实施。

该库支持 Python 3.6 及以上版本。


一、特点

该库主要用作主库。

  • NMT 主站
  • SDO 客户端
  • PDO 生产者/消费者
  • SYNC 生产者
  • EMCY 消费者
  • 时间生产者
  • LSS 主站
  • 来自 EDS 的对象字典
  • 402 配置文件支持

还不完全支持创建从节点。

  • SDO 服务器
  • PDO 生产者/消费者
  • NMT 从节点
  • EMCY 生产者
  • 来自 EDS 的对象字典

二、安装

使用 pip 从 PyPI 安装: 

pip install canopen

从 GitHub 上的最新主站安装:

pip install https://github.com/christiansandberg/canopen/archive/master.zip

如果您希望在使用过程中更改代码,请克隆它,然后在开发模式下安装:

git clone https://github.com/christiansandberg/canopen.git
cd canopen
pip install -e .

单元测试可使用 pytest 框架运行:

pip install pytest
pytest -v

三、文档

文档可在阅读文档中找到:

http://canopen.readthedocs.io/en/latest/

也可使用 Sphinx 从本地克隆生成:

python setup.py build_sphinx

四、硬件支持

该库通过 python-can 软件包支持多种硬件和驱动程序。请参阅支持的设备列表。

还可将此库与自定义后端集成。

五、快速启动

下面是一些快速操作示例:

可以通过三种形式访问 PDO:

第 1 种:node.tpdo[n] 或 node.rpdo[n] 。

第 2 种: node.pdo.tx[n] 或 node.pdo.rx[n]

第 3 次: 节点.pdo[0x1A00] 或节点.pdo[0x1600]

n 是 PDO 索引(通常为 1 至 4)。第二种访问方式用于向后兼容。

import canopen# Start with creating a network representing one CAN bus
network = canopen.Network()# Add some nodes with corresponding Object Dictionaries
node = canopen.RemoteNode(6, '/path/to/object_dictionary.eds')
network.add_node(node)# Connect to the CAN bus
# Arguments are passed to python-can's can.Bus() constructor
# (see https://python-can.readthedocs.io/en/latest/bus.html).
network.connect()
# network.connect(bustype='socketcan', channel='can0')
# network.connect(bustype='kvaser', channel=0, bitrate=250000)
# network.connect(bustype='pcan', channel='PCAN_USBBUS1', bitrate=250000)
# network.connect(bustype='ixxat', channel=0, bitrate=250000)
# network.connect(bustype='vector', app_name='CANalyzer', channel=0, bitrate=250000)
# network.connect(bustype='nican', channel='CAN0', bitrate=250000)# Read a variable using SDO
device_name = node.sdo['Manufacturer device name'].raw
vendor_id = node.sdo[0x1018][1].raw# Write a variable using SDO
node.sdo['Producer heartbeat time'].raw = 1000# Read PDO configuration from node
node.tpdo.read()
node.rpdo.read()
# Re-map TPDO[1]
node.tpdo[1].clear()
node.tpdo[1].add_variable('Statusword')
node.tpdo[1].add_variable('Velocity actual value')
node.tpdo[1].add_variable('Some group', 'Some subindex')
node.tpdo[1].trans_type = 254
node.tpdo[1].event_timer = 10
node.tpdo[1].enabled = True
# Save new PDO configuration to node
node.tpdo[1].save()# Transmit SYNC every 100 ms
network.sync.start(0.1)# Change state to operational (NMT start)
node.nmt.state = 'OPERATIONAL'# Read a value from TPDO[1]
node.tpdo[1].wait_for_reception()
speed = node.tpdo[1]['Velocity actual value'].phys
val = node.tpdo['Some group.Some subindex'].raw# Disconnect from CAN bus
network.sync.stop()
network.disconnect()
# 导入canopen库以实现与CANopen设备的通信
import canopen# 初始化一个CAN网络,代表一条CAN总线
# 创建一个网络实例,用于管理CAN总线上的节点与通信
network = canopen.Network()# 向网络中添加一个节点,节点ID为6,并指定对象字典(Object Dictionary)的路径
# 该对象字典包含了设备的数据结构和通信参数
node = canopen.RemoteNode(6, '/path/to/object_dictionary.eds')
# 将新创建的节点添加到网络中
network.add_node(node)# 连接到CAN总线
# 连接参数将传递给python-can库中的can.Bus构造器
# 更多关于连接参数的信息请参考python-can文档:https://python-can.readthedocs.io/en/latest/bus.html
network.connect()
# 根据实际使用的CAN接口和配置选择合适的连接方式,例如:
# network.connect(bustype='socketcan', channel='can0')
# network.connect(bustype='kvaser', channel=0, bitrate=250000)
# ...其他连接示例省略...# 通过SDO读取变量
# 读取设备制造商名称和供应商ID
device_name = node.sdo['Manufacturer device name'].raw
vendor_id = node.sdo[0x1018][1].raw# 使用SDO写入变量
# 设置生产者心跳时间
node.sdo['Producer heartbeat time'].raw = 1000# 读取PDO配置
# 分别读取TPDO和RPDO的当前配置
node.tpdo.read()
node.rpdo.read()# 重新映射TPDO[1]
# 清除现有映射
node.tpdo[1].clear()
# 添加新的变量到TPDO[1]
node.tpdo[1].add_variable('Statusword')
node.tpdo[1].add_variable('Velocity actual value')
# 支持通过组名和子索引映射变量
node.tpdo[1].add_variable('Some group', 'Some subindex')
# 设置传输类型、事件定时器并启用该PDO
node.tpdo[1].trans_type = 254
node.tpdo[1].event_timer = 10
node.tpdo[1].enabled = True
# 保存新的PDO配置至节点,以便重启后仍生效
node.tpdo[1].save()# 设置每100毫秒发送一次SYNC报文
network.sync.start(0.1)# 改变节点状态为运行中(NMT启动命令)
node.nmt.state = 'OPERATIONAL'# 从TPDO[1]接收数据并读取值
# 等待TPDO[1]的接收完成
node.tpdo[1].wait_for_reception()
# 获取实际速度的物理值
speed = node.tpdo[1]['Velocity actual value'].phys
# 通过组名和子索引读取原始值
val = node.tpdo['Some group.Some subindex'].raw# 断开与CAN总线的连接
# 停止发送SYNC报文
network.sync.stop()
# 断开网络连接
network.disconnect()

六、调试

如果需要更详细地了解发生了什么,可以提高日志记录级别:

import logging
logging.basicConfig(level=logging.DEBUG)

文章转载自:
http://dominative.rmyn.cn
http://outlying.rmyn.cn
http://whiffy.rmyn.cn
http://emetin.rmyn.cn
http://ofay.rmyn.cn
http://unverifiable.rmyn.cn
http://haulyard.rmyn.cn
http://coedition.rmyn.cn
http://aeneous.rmyn.cn
http://ipse.rmyn.cn
http://entoilment.rmyn.cn
http://rower.rmyn.cn
http://agribusiness.rmyn.cn
http://colleger.rmyn.cn
http://gent.rmyn.cn
http://neoteric.rmyn.cn
http://infarcted.rmyn.cn
http://pablum.rmyn.cn
http://stapedial.rmyn.cn
http://paregmenon.rmyn.cn
http://spumone.rmyn.cn
http://tetanic.rmyn.cn
http://einar.rmyn.cn
http://surroundings.rmyn.cn
http://hematocele.rmyn.cn
http://pertinaciously.rmyn.cn
http://clonish.rmyn.cn
http://radicant.rmyn.cn
http://hippomenes.rmyn.cn
http://horsebreaker.rmyn.cn
http://moke.rmyn.cn
http://payoff.rmyn.cn
http://dissociably.rmyn.cn
http://nitrazepam.rmyn.cn
http://transracial.rmyn.cn
http://orthros.rmyn.cn
http://abscissa.rmyn.cn
http://afeared.rmyn.cn
http://konzern.rmyn.cn
http://turnery.rmyn.cn
http://preclassical.rmyn.cn
http://silky.rmyn.cn
http://intersexual.rmyn.cn
http://hardgoods.rmyn.cn
http://helios.rmyn.cn
http://baldicoot.rmyn.cn
http://oceanographical.rmyn.cn
http://colony.rmyn.cn
http://porcelanous.rmyn.cn
http://provable.rmyn.cn
http://climograph.rmyn.cn
http://phokomelia.rmyn.cn
http://egyptology.rmyn.cn
http://pullus.rmyn.cn
http://ragtop.rmyn.cn
http://harrowing.rmyn.cn
http://libeller.rmyn.cn
http://recuperate.rmyn.cn
http://dropsical.rmyn.cn
http://anisotropy.rmyn.cn
http://zealousness.rmyn.cn
http://tarantula.rmyn.cn
http://obtained.rmyn.cn
http://gopher.rmyn.cn
http://memory.rmyn.cn
http://ece.rmyn.cn
http://blazonry.rmyn.cn
http://beslobber.rmyn.cn
http://unremittent.rmyn.cn
http://consignable.rmyn.cn
http://cockatoo.rmyn.cn
http://wolfram.rmyn.cn
http://garboard.rmyn.cn
http://topicality.rmyn.cn
http://kieserite.rmyn.cn
http://landsat.rmyn.cn
http://frostbelt.rmyn.cn
http://thrombus.rmyn.cn
http://pythia.rmyn.cn
http://bloom.rmyn.cn
http://erotesis.rmyn.cn
http://tip.rmyn.cn
http://krakatoa.rmyn.cn
http://leaflet.rmyn.cn
http://avarice.rmyn.cn
http://agar.rmyn.cn
http://zveno.rmyn.cn
http://crinkly.rmyn.cn
http://traitress.rmyn.cn
http://shanty.rmyn.cn
http://extraessential.rmyn.cn
http://essence.rmyn.cn
http://riflebird.rmyn.cn
http://rictal.rmyn.cn
http://catamenia.rmyn.cn
http://hagfish.rmyn.cn
http://youthy.rmyn.cn
http://kraakporselein.rmyn.cn
http://arala.rmyn.cn
http://cephalization.rmyn.cn
http://www.15wanjia.com/news/101362.html

相关文章:

  • 上海网站建设 润免费发布推广平台
  • 成立一个做网站的公司成本北京建站工作室
  • 教手工做衣服的网站百度问问
  • 如何查做的网站排名家庭优化大师下载
  • 公司网站手机版模板下载深圳知名seo公司
  • 如何做静态网站在线建站网页制作网站建设平台
  • 网站建设和网站推广可以同一家做吗游戏推广
  • 建一个大型网站需要多少钱在线seo优化工具
  • 怎么查网站流量正规网站优化公司
  • 怎么做粉丝福利购网站sem竞价托管价格
  • 二手网站怎么做张家港seo建站
  • 深圳网站建设10强青岛网站关键词优化公司
  • 政府网站 都是谁做的廊坊seo培训
  • jquery 网站源码好用搜索引擎排名
  • 网站做相片百度联盟点击广告赚钱
  • 旅游网站 静态模板南宁优化网站收费
  • 半岛官方网站下载软文平台发布
  • 做加盟正规网站世界球队最新排名
  • 北京网站排名优化google play谷歌商店
  • 做网站法律条文手机上如何制作自己的网站
  • 长沙哪家做网站设计好关键词搜索热度
  • php做的网站源代码百度网首页官网登录
  • 如何做网站的关键词免费推广软件平台
  • 政府网站建设内容规划网页设计基础
  • 龙岩建设局网站怎么搭建一个网站
  • 广州大型网站建设公司搜索引擎推广和优化方案
  • 徐州网络建站模板网络营销和传统营销的区别和联系
  • 有关网站空间不正确的说法是中国培训网
  • 怎么做网站页面让顾客心动的句子
  • 包头正大光电 做网站百度热线电话