-
asp论坛回复功能怎么实现_编码器怎么实现定位功能,用plc怎么设计梯形图
2020-11-10 17:47:11严格来讲,编码器只会告诉你改如何定位,要如何执行,是需要靠数控系统(或者PLC之类控制器)控制伺服或者步进电机来实现定位的,编码器好比人的眼睛,知道电机轴或者负载处于当前某个位置,工业上用的一般是光电类型...严格来讲,编码器只会告诉你改如何定位,要如何执行,是需要靠数控系统(或者PLC之类控制器)控制伺服或者步进电机来实现定位的,编码器好比人的眼睛,知道电机轴或者负载处于当前某个位置,工业上用的一般是光电类型编码器,下边简单说明一下
简单说下编码原理和位置测量
光电编码器是在一个很薄很轻的圆盘子上,通过紧密仪器来腐蚀雕刻了很多条细小的缝,相当于把一个360度,细分成很多等分,比如成1024组,这样每组之间的角度差是360/1024度=0.3515625度。
然后有个精密的发光源,安装在码盘的一面,码盘的另外一面,会有个接收器之类的,使用了光敏电阻这些元件加放大和整形电路组成,这样码盘转动时候,有缝隙的地方会透光过去,接收器会瞬间收到光脉冲,经过电路处理后,输出一个电脉冲信号,这样码盘旋转了一周,会对应输出1024个脉冲,第一个脉冲位置如果是0,第二个脉冲位置就是0.3515625°,第三个脉冲位置是0.3515625°*2,以此类推,这样只要有仪器能读到脉冲个数,就可以知道码盘对应在什么位置了,如果把编码器安装到电机的轴上,电机轴和码盘是刚性连接,两者的位置关系会一一对应,通过读编码器脉冲,就可以知道电机的轴位置。
而电机轴,比如会通过同步带,齿轮,链条等带动一些负载,比如控制丝杆,这样会有个所谓电子齿轮比的关系,电机转一圈,丝杆会前进多少毫米,这样读到了对应编码器上输出多少给脉冲,通过脉冲数就可以反推出当前丝杆的位置。
但是编码器是圆的,如果无限制旋转下去,角度会无穷大,所以设计了一种增量型的编码器,转一圈,会输出三组信号ABZ,其中AB是一样的脉冲,比如上边说的一圈有1024个脉冲,AB相脉冲对应一圈内的圆周角度,而且两种脉冲是处于正交状态的,如果是正反转,通过判断AB相脉冲的上升沿和下降沿的先后顺序,就可以知道编码器当前是顺时针还是逆时针方向旋转的,
另外有个Z相脉冲,是因为圆周虽然会不停转下去,角度会无穷无尽,但是都是一周一周的重复而已,零相脉冲固定在圆周某个位置,编码器每转一圈,只输出一个零相脉冲,这样如果以Z相脉冲为基准点,这样每次读到这个脉冲时候,系统就清零一次,就可以让角度最大值控制在360°以内,相当于一个零基准点了。这样即使系统断掉了,重新上电,只要能找到这个基准点,就可以知道丝杆的初始位置在什么地方了。
以上这种定位叫增量坐标系,所以编码器就是增量型编码器,应用比较广泛,因为灵活而且价格便宜。
如果只设备只需要转一圈的,也就是角度在360°内的,编码器可以细分精密一点,比如有13位,相当于2^13次方个脉冲一圈,对应着360°,这种脉冲数和角度一一对应,不怕系统断电需要重新调整零位,这种编码器叫单圈绝对值编码器。如果负载需要转多圈的,但是这个圈数也不能非常多,比如5圈,相当于5*360°=1800°,这样脉冲和1800°一一对应,这些在一些高档的数控机床上应用比较多,可以知道丝杆或者一些旋转工作的当前精密位置,而且不用担心系统断电归零问题。
此外,编码器还有磁电方式的,比如在码盘上加工了很多个南北间隔的小磁铁,通过霍尔去读小磁铁信号,输出信号,同样经过放大和整形变成了电脉冲,这点和光电编码器是类似的,而且价格会便宜点,可靠性会高,但是精度就比光电要差点。
PLC如何通过编码器判断位置
PLC能输入开关量,也就是一高一低的电平电压,而编码器脉冲信号,可以理解一定时间内,用极快的速度完成的一组开关量。但是因为这种开关量的频率太高了,所以PLC的普通I/O口是无法准确读到这些脉冲的个数的,因为PLC工作过程中存在扫描周期,需要每个一段时间才去刷新一下普通I/O口的数据,而编码器的精度太高了,单位时间内输出的脉冲个数太多,普通I/O是无法胜任的。
一般PLC会设计有高速计数端口,本质是利用了底层单片机的硬件逻辑来完成这些编码器计数的,避开了扫描周期问题,PLC都设计有专门的高速计数指令,使用的时候,直接调用这些指令就可以读到当前的脉冲值了。
但是脉冲的计算和输出上,由于扫描周期存在,往往也会存在着滞后影响,如果用来控制一些执行机构,比如气缸来动作裁切动作,这样要考虑提前量的补偿问题。
提醒一下,如果想用PLC来控制伺服或者步进系统,往往并不需要通过编码器反馈来判断位置,通过一些PLS指令之类的来发出位置脉冲给伺服驱动器,位置环在伺服驱动器内部构成就好,而PLC这边只是一个指令机构,并没有构成位置闭环,当然如果是专门定位模块控制,使用了NC之类的控制方式,是可以在里边构建位置闭环的。
-
asp论坛回复功能怎么实现_编码器的定位功能,用PLC怎么实现?
2020-11-12 12:36:55严格来讲,编码器只会告诉你改如何定位,要如何执行,是需要靠PLC之类控制器或者步进电机来实现定位的,编码器好比人的眼睛,知道电机轴或者负载处于当前某个位置,工业上用的一般是光电类型编码器,下边简单说明...点击↑↑上方关注,回复100领取电气控制100例。
严格来讲,编码器只会告诉你改如何定位,要如何执行,是需要靠PLC之类控制器或者步进电机来实现定位的,编码器好比人的眼睛,知道电机轴或者负载处于当前某个位置,工业上用的一般是光电类型编码器,下边简单说明一下
简单说下编码原理和位置测量
光电编码器是在一个很薄很轻的圆盘子上,通过紧密仪器来腐蚀雕刻了很多条细小的缝,相当于把一个360度,细分成很多等分,比如成1024组,这样每组之间的角度差是360/1024度=0.3515625度。
然后有个精密的发光源,安装在码盘的一面,码盘的另外一面,会有个接收器之类的,使用了光敏电阻这些元件加放大和整形电路组成,这样码盘转动时候,有缝隙的地方会透光过去。
接收器会瞬间收到光脉冲,经过电路处理后,输出一个电脉冲信号,这样码盘旋转了一周,会对应输出1024个脉冲,第一个脉冲位置如果是0,第二个脉冲位置就是0.3515625°,第三个脉冲位置是0.3515625°*2。
以此类推,这样只要有仪器能读到脉冲个数,就可以知道码盘对应在什么位置了,如果把编码器安装到电机的轴上,电机轴和码盘是刚性连接,两者的位置关系会一一对应,通过读编码器脉冲,就可以知道电机的轴位置。
而电机轴,比如会通过同步带,齿轮,链条等带动一些负载,比如控制丝杆,这样会有个所谓电子齿轮比的关系,电机转一圈,丝杆会前进多少毫米,这样读到了对应编码器上输出多少给脉冲,通过脉冲数就可以反推出当前丝杆的位置。
但是编码器是圆的,如果无限制旋转下去,角度会无穷大,所以设计了一种增量型的编码器,转一圈,会输出三组信号ABZ,其中AB是一样的脉冲。
比如上边说的一圈有1024个脉冲,AB相脉冲对应一圈内的圆周角度,而且两种脉冲是处于正交状态的,如果是正反转,通过判断AB相脉冲的上升沿和下降沿的先后顺序,就可以知道编码器当前是顺时针还是逆时针方向旋转的,
另外有个Z相脉冲,是因为圆周虽然会不停转下去,角度会无穷无尽,但是都是一周一周的重复而已,零相脉冲固定在圆周某个位置,编码器每转一圈,只输出一个零相脉冲。
这样如果以Z相脉冲为基准点,这样每次读到这个脉冲时候,系统就清零一次,就可以让角度最大值控制在360°以内,相当于一个零基准点了。
这样即使系统断掉了,重新上电,只要能找到这个基准点,就可以知道丝杆的初始位置在什么地方了。
以上这种定位叫增量坐标系,所以编码器就是增量型编码器,应用比较广泛,因为灵活而且价格便宜。如果只设备只需要转一圈的,也就是角度在360°内的,编码器可以细分精密一点,比如有13位,相当于2^13次方个脉冲一圈,对应着360°,这种脉冲数和角度一一对应,不怕系统断电需要重新调整零位,这种编码器叫单圈绝对值编码器。
如果负载需要转多圈的,但是这个圈数也不能非常多,比如5圈,相当于5*360°=1800°,这样脉冲和1800°一一对应,这些在一些高档的数控机床上应用比较多,可以知道丝杆或者一些旋转工作的当前精密位置,而且不用担心系统断电归零问题。
此外,编码器还有磁电方式的,比如在码盘上加工了很多个南北间隔的小磁铁,通过霍尔去读小磁铁信号,输出信号,同样经过放大和整形变成了电脉冲,这点和光电编码器是类似的,而且价格会便宜点,可靠性会高,但是精度就比光电要差点。
PLC如何通过编码器判断位置
PLC能输入开关量,也就是一高一低的电平电压,而编码器脉冲信号,可以理解一定时间内,用极快的速度完成的一组开关量。
但是因为这种开关量的频率太高了,所以PLC的普通I/O口是无法准确读到这些脉冲的个数的,因为PLC工作过程中存在扫描周期,需要每个一段时间才去刷新一下普通I/O口的数据,而编码器的精度太高了,单位时间内输出的脉冲个数太多,普通I/O是无法胜任的。
一般PLC会设计有高速计数端口,本质是利用了底层单片机的硬件逻辑来完成这些编码器计数的,避开了扫描周期问题,PLC都设计有专门的高速计数指令,使用的时候,直接调用这些指令就可以读到当前的脉冲值了。
但是脉冲的计算和输出上,由于扫描周期存在,往往也会存在着滞后影响,如果用来控制一些执行机构,比如气缸来动作裁切动作,这样要考虑提前量的补偿问题。
提醒一下,如果想用PLC来控制伺服或者步进系统,往往并不需要通过编码器反馈来判断位置,通过一些PLS指令之类的来发出位置脉冲给伺服驱动器,位置环在伺服驱动器内部构成就好。
而PLC这边只是一个指令机构,并没有构成位置闭环,当然如果是专门定位模块控制,使用了NC之类的控制方式,是可以在里边构建位置闭环的。
(内容来源网络,版权归原作者)
免责声明:如涉及版权,请联系删除!任何人和机构不承担相关的法律责任。
-
信号波形怎么画_示波器怎么用才对?面板按钮功能都了解吗?这些细节很容易忽略!...
2021-01-05 12:50:50示波器面板上有很多按钮和旋钮,初识示波器的时候一脸茫然,和当年刚接触电脑的时候,看到键盘怎么也没办法把abcdefg键连贯起来一样。那个时候,师傅都是用模拟示波器的,看起来高大上,加上师傅不允许我们乱动示波...了解了示波器的选购,今天我们来学习下示波器的控件作用。示波器面板上有很多按钮和旋钮,初识示波器的时候一脸茫然,和当年刚接触电脑的时候,看到键盘怎么也没办法把abcdefg键连贯起来一样。那个时候,师傅都是用模拟示波器的,看起来高大上,加上师傅不允许我们乱动示波器,感觉更加的神秘,吃不下睡不着也想知道其中的奥秘,今天我们一起来揭开示波器的面纱。示波器面板主要分成4大区:公共设置区,垂直控制区,水平控制区,触发控制区。
公共设置区
没有名字的大旋钮:多功能旋钮。
RUN/STOP 键:连续采集波形或停止采集。
AUTO SET 键:自动设置,适用于测量固定电压和频率的波形。
SINGLE SEQ 键:采集单个波形,然后停止,不再接收任何新的信号。
HELP 键:显示 Help(帮助)菜单。
DEFAULT SETUP 键:恢复出厂设置。
ACQUIRE 键:设置采样方式,普通,峰值,平均值,设置:选采样(其他示波器可能写普通或者正常)。
DISPLAY 键:显示设置,设置波形亮度,余辉时间,网格亮度等,设置:类型-矢量,持续-关闭,格式-YT,对比度-50%,显示格式-一般,其他示波器设置基本也一样。
MEASURE 键:显示当前测量波形的值,设置:峰峰值,平均值,频率;测量通道:通道1。
CURSOR 键:显示 Cursor(光标)菜单,设置:关闭。
SAVE/RECALL 键:显示设置和波形的 Save/Recall(保存/调出)菜单。
UTILITY 键:显示 Utility(辅助功能)菜单,主要设置语言,自校正。
AUTO RANGE 键:自动量程。
REF MENU 键:基准波形菜单,一般用不上。
SAVE/PRINT 键:保存波形到U盘或者打印。
除此之外,屏幕边还有5个没有名字的按钮,我们称为软件按钮,用在设置在不同菜单设置的改变。
三大设置区
垂直控制器
1、通道1垂直位置,一般放在中间。
2、通道2垂直位置,使用时候一般放在下部。
3、通道1开关兼设置按钮。
4、通道2开关兼设置按钮。
5、通道1伏格设置旋钮。
6、通道2伏格设置旋钮。
7、通道1探头输入端。
8:通道2探头输入端。
水平控制区
9、波形水平位置调节旋钮。
10、水平设置菜单。
11、波形设置到屏幕水平中心点。
12、时基旋钮。
触发区
13、触发电平旋钮。
14、显示 TRIG MENU(触发菜单)。
15、触发电平设置为触发信号峰值的垂直中点。
16、强制触发:不管触发信号是否适当,都完成采集。
17、触发查看:查看触发内容。
注:通道1和通道2菜单设置:耦合-直流;带宽限制-关;探头-10x;反相-关闭
触发设置:触发类型-边沿;触发通道-通道1;触发斜率-根据信号方向设置,配合单次使用;触发模式-根据信号状态,单次或着自动。
示波器屏幕信息
屏幕信息
1、通道1的位置
2、通道2的位置
3、通道1每隔电压
4、通道2每隔电压
5、时基
6、触发通道
7、触发斜率
8、触发电平
9、触发电平指示
10、波形相对屏幕中心点位置
11、波形中心点
12、触发状态
探头功能:示波器探头属于一个重要的附件,使用前需要先校正,由于我们使用的频率范围比较宽,所以必须使用10X,使用前先将开关置于10x。
1、钩子,使用双踪的时候解放手。
2、倍率开关,设置在10x。
3、接地夹,测试信号就近接地。
4、补偿调整孔。
初次使用,先将探头连接到示波器探头补偿测试端,按下自动设置,如果出现下列情况,就需要校正。
探头补偿不足。使用附件中的无感螺丝刀调节探头补偿,如下图就可以。
时基换算:
频率和周期是倒数关系,f=1/T,由于算法比较麻烦,以下表格是常用参数设置。
时基及触发设置表:
本文内容就到介绍到这,希望本文的分享对新手朋友有所帮助!
喜欢我们内容的小伙伴,点击关注我们哟!
-
怎么在Python装饰器中自定义功能呢?用这种方法让你“为所欲为”
2020-05-13 23:15:15今天是Python专题的第14篇文章,我们继续装饰器的话题,来看看怎么给装饰器包装方法,实现更多灵活的操作。 在之前的文章当中,我们实现了对装饰器赋予参数,从而可以通过传入不同的参数来控制装饰器中的逻辑。这样...本文始发于个人公众号:TechFlow,原创不易,求个关注
今天是Python专题的第14篇文章,我们继续装饰器的话题,来看看怎么给装饰器包装方法,实现更多灵活的操作。
在之前的文章当中,我们实现了对装饰器赋予参数,从而可以通过传入不同的参数来控制装饰器中的逻辑。这样做可以大大地增加装饰器的灵活性,但是仍然不足以解决所有的问题。
如果我们面临一个变动很频繁的业务,以后也许需要加上一些当前想不到的逻辑,这个时候就没有办法仅仅通过参数来控制了。那么有没有办法不仅仅是传入参数,而是可以给装饰器添加不同的逻辑呢?
当然是有的,但是这个操作比较复杂,让我们抽丝剥茧,一点一点来吃透它。
setattr和getattr操作
首先我们来看下setattr和getattr这两个方法,attr是attribute的缩写,也就是属性的意思。我们搞明白了这个单词的意思之后就简单了,根据字面可以理解到,这两个方法一个是设置属性一个是获取属性。
是的,就是这么简单,没错。
其中getattr尤其简单,基本上等价于使用.去获取属性。
我们来看一个最简单的例子,我们先创建一个类,然后给它附上一个属性。
class A: def __init__(self): self.name = 'hello'
之后,我们可以使用getattr方法去获得它的name属性:
a = A() getattr(a, 'name')
有get自然就有set,我们也可以通过setattr为它附上新的属性。第二个参数是新增的属性名称,第三个参数是属性的值。
setattr(a, 'age', 18)
这样,当我们去执行a.age的时候,就会获得18。这里要注意的是,我们只是单纯地为a这个实例创建了新的属性,并没有更改A这个类中的定义。所以其他A这个类的实例并不会受到影响,另外如果我们将多个值赋值给了同一个属性名会发生覆盖,也就是后面的覆盖前面的。
属性这个词在Python中的定义是比较宽泛的,除了变量可以称作是属性,函数也一样可以作为属性。也就是说我们除了可以添加一个变量之外,也可以添加一个函数。
我们来看个例子:
def print_log(): print('This is a log')
这是一个简单的demo方法,我们通过setattr将它赋值给实例a,那么我们就可以在实例a中调用它了。
不仅仅如此,类也一样可以通过setattr方法设置。
理解了setattr和getattr的用法之后,我们不禁有一个问题,我们通过.操作不香吗,为什么还要搞一个setattr和getattr出来呢?
如果我们自己写代码写着玩,当然是用.操作更方便,但如果是实际的开发场景。很有可能我们需要添加的属性的名称是个变量,而不是写死的,也就是说是可配置的。这个时候就不能通过.了,我们考虑问题的时候不能仅仅从功能入手,也需要思考一下它的使用场景。
为装饰器定义属性
setattr我们都已经熟悉了,接下来回到正题。Python当中一切都是对象,同样函数也是对象。既然函数也是对象,那么我们就可以给函数也设置属性。装饰器的本质就是函数,所以我们可以给装饰器内包装的函数也设置属性,为了方便大家理解,我先不用setattr,让大家看看单纯的带属性的装饰器是什么样的。
def decorate(func): logmsg = func.__name__ @wraps(func) def wrapper(*args, **kwargs): print(logmsg) return func(*args, **kwargs) def set_message(newmsg): nonlocal logmsg logmsg = newmsg wrapper.set_message = set_message return wrapper
如果我们把set_message这个方法拿掉的话,它就是一个普普通通的装饰器。set_message方法当中,我们使用nonlocal关键字修改了logmsg这个变量的值,而这个值会在装饰器的包装函数当中用到。也就是说我们通过调用set_message方法,可以修改这个装饰器的运行结果和逻辑。
这里,我们没用装饰器,而是简单地使用了.关键字来对它进行了赋值。还是和之前说的一样,这样当然是可以的,但是如果我们想要配置这个name就做不到了。最常见的场景就是区分线上和测试环境,一种做法是在接口的名字之前加上一个标识,比如线上是online,测试环境是test或者是dev。通过这种方法区分不同环境的逻辑。
所以比较好的方法是将这个逻辑也写成一个装饰器,将被包装的方法作为参数传入。如果你看明白了上一篇文章,熟悉装饰器传参的话,这段代码对你来说应该很简单。
def attach(obj): @wraps(obj) def wrapper(func): setattr(obj, func.__name__, func) return func return wrapper
有了attach这个装饰器之后,我们只需要给set_message这个方法加上注解,将被包装的函数作为参数传入即可。
@attach(wrapper) def set_message(newmsg): nonlocal logmsg logmsg = newmsg
如果只是想要实现功能,而不追求规范的话,可以使用partial来简化代码,减少它的层次结构:
def attach(obj, func=None): if func is None: return partial(attach_wrapper, obj) setattr(obj, func.__name__, func) return func
这样写也是可以work的,只要熟悉partial的用法,应该也不难理解。
让函数为所欲为
如果你是一个程序员,你面临一个变动很频繁的业务,你无法预知之后的需求情况,想要代码有足够大的机动余地,这个时候可以利用强大的setattr给程序留一个“后门”,方便后面临时修改。
具体的做法其实很简单,我们在装饰器当中定义一个dict,用来存储自定义的函数。再实现一个set_func方法将自定义的函数存储进这个dict当中,只有就可以通过参数,在不修改装饰器的情况下自由变更装饰器内的逻辑了。
我们来看代码:
def decorate(func): func_dict = {} @wraps(func) def wrapper(*args, **kwargs): # 通过key来选择应该调用哪一个函数作为装饰器的逻辑 if kwargs.get('key') is not None: func_dict[kwargs['key']](*args, **kwargs) return func(*args, **kwargs) # 将函数名和函数作为参数传入,存储在dict中 @attach(wrapper) def set_func(func_name, func): nonlocal func_dict func_dict[func_name] = func return wrapper
我们再来看一个使用的例子:
def test(*args, **kw): print('test') add.set_func('test', test) add(3, 4, key='test')
这样,我们就把test方法中的逻辑放入了装饰器当中,只有我们需要,我们还可以写出其他的方法,来自定义我们对装饰器的需求,而又不需要修改装饰器内部的逻辑。不仅如此,我们还可以在主体函数的前后都加上这样的逻辑,真的可以说是为所欲为了。
当然一般情况下我们用不到这样的骚操作,但是能够写出来或者说看懂这样的功能,那就说明关于装饰器的理解已经算是入门了。
结尾
装饰器可以说是函数式编程在Python当中最重要的使用渠道,在许多Python工具和框架当中大量使用。其实我们学习的并不仅仅是装饰器的一两种奇淫技巧,也是函数式编程的一些思想和理念。当我们将这些理念理解深刻了之后,不仅仅是Python,同样可以在许多其他的领域获得突飞猛进的进步。
各位看官大人,赏个关注吧~
-
python getattr_怎么在Python装饰器中自定义功能呢?用这种方法让你“为所欲为”
2020-11-21 04:30:04今天是Python专题的第14篇文章,我们继续装饰器的话题,来看看怎么给装饰器包装方法,实现更多灵活的操作。在之前的文章当中,我们实现了对装饰器赋予参数,从而可以通过传入不同的参数来控制装饰器中的逻辑。这样做... -
abb工业机器人指令lf怎么用_机器人协同控制
2020-12-27 17:38:30主流生产商提供的多机器人协作功能比较① 参与协作的机器人的数目② 1条协作运动指令控制1个机器人的运动③ 1条协作运动指令控制n个机器人的运动ABB的MutiMove功能ABB的MultiMove功能(基于ABB ICR5控制器)目前最多... -
光线感应器怎么设置方法
2020-07-12 18:34:03光线感应器怎么设置 一般步骤:控制面板——设置——常规——个性化选择——屏幕显示——光线感应器 E71光线感应器: 可以把光线感应器的感应值调到最低值;此后不管设备所处环境如何暗淡,光线感应器都会把这个... -
4路串口继电器控制器示例程序(19-2-20).VI
2020-05-12 22:23:24本示例源码可以学习和使用如下功能 1 演示了labview编程 2 怎么使用VISA驱动库 ...5、可以用多个主板级联,组合成4*x路 对应IO板卡采购:https://item.taobao.com/item.htm?ft=t&id=559200622128 -
写程序来控制函数发生器来输出任意波形
2020-10-05 15:40:00提示: 之前查找很多资料,都是国外的,怎么用c语言和c++来控制函数发生器输出任意波,搞了很久才弄明白怎么一回事。具体可以看我之前写的文展,里面有详细的安装方式,与软件的和函数发生器的使用。这是只是告诉... -
关于在TabBar 中添加按钮,并通过block 或代理在控制器中实现响应
2016-06-28 20:43:00相信很多朋友会遇到在TabBar中添加按钮,并要求点击按钮能够实现一些功能,但是当我们自定义的时候,怎么才能在控制器中响应?通常我会用代理或者block,block性能更好,建议使用. 自定义TabBar类 .h #import <... -
tp3.2怎么用mysql视图_thinkphp3.2.3 怎么加载视图
2021-01-19 08:48:57为了对模板文件更加有效的管理,ThinkPHP对模板文件进行目录划分,默认的模板文件定义规则是:视图目录/[模板主题/]控制器名/操作名+模板后缀默认的视图目录是模块的View目录(模块可以有多个视图文件目录,这取决于... -
如何实现一个设备下控制多个物体
2019-10-06 05:41:04想用一个红外遥控器,控制多个电器,怎么利用机智云自助开发平台来实现呢?数据点怎么配置?APP怎么处理? 今天,我们来谈谈,用机智云云端提供api接口(openapi),应用端(PC)利用工具(postman)发送HTTP请求... -
如何实现一个设备下控制多个物体(IOT软件平台)
2019-09-25 16:18:33最近收到机友私信:想用一个红外遥控器,控制多个电器,怎么利用机智云IOT软件平台来实现呢?数据点怎么配置?APP怎么处理? 今天,我们来谈谈,用机智云IOT软件平台的云端提供api接口(openapi),应用端(PC)... -
*【功能点】前端vue传过来的是base64格式(解码变成二进制)的图片怎么做多图上传
2018-01-24 21:20:29此是tp5框架,控制器中的代码 总体思路: 1、先接收数据,遍历到是字符串为止 2、处理字符串,给多余的字符串去掉,因为这些会阻止你base64_decode解码 3、创建路径、图片名称。将base64的图片写入文件 4、取出... -
emlc——让MATLAB的代码进入单片机x_单片机怎么让蜂鸣器响
2020-03-09 13:41:55emlc让 MATLAB 的代码进入单片机 通常情况下如果我在 MATLAB 上完成了某个功能比如某图像识别的算法却想把它 用在单片机上需要自己再写一遍 C 的代码我这里说的单片机确切的来说还是指所有 微控制器比较好但有了 ... -
Mouse Without Borders 一套鼠标键盘控制多台电脑
2020-01-07 22:27:43当我的桌子上除了笔记本之外还多了一个台式机后,两个鼠标,两个键盘就显得十分多余,于是开始探索怎样用一套鼠标键盘控制多台电脑。。。 首先搜到的是这玩意——KVM切换器 在他49个赞的诱惑下,我还去淘宝搜了下这... -
华为手机怎么使用读卡器_[手机技巧] 华为手机使用技巧大全
2020-12-12 09:44:25之所以这么问,是因为它的很多功能都是隐藏起来的,别说新手了,就是用了几年的人都可能不知道。今天,小编就跟大家分享一下华为手机的超实用小技巧,绝对是你之前没有注意到的。1.字母手势手机里的软件越来越多,... -
电脑上怎么设置自动按某个键_时控开关怎么调?时控开关怎么设置?
2020-11-22 06:34:14照明灯的控制方式多种多样,功能也各自不同。比如说,大街上的路灯晚上开,早上关,都是自动完成的,这样不仅节约电能,也省去了人工操作的麻烦,既方便又实用。那么,这是怎么做到的呢?微电脑时控开关实物图其实,... -
IOS开发相册图片多选和删除的功能
2021-01-05 18:10:45照例先上效果图 本次用的第三方框架做这个,...第一个控制器 .h里没啥代码 #import RRZShowEditViewController.h #import RRZSendShowTextCell.h #import RRZSendShowImageCell.h #import QBImagePickerController.h -
易维清使用技巧:权限精确控制到字段
2013-11-18 15:55:00首先,我得问问为什么要在同一个模块里费劲心思的设置不同权限呢,当然对于传统的手工开发来说,开发一个模块或许会比开发两个模块的工作量少,所以很多功能都往一个模块里加,包括权限。 但是,使用代码生成器就不... -
谷歌浏览器(Chrome) v76.0.3809.62 Beta.zip
2019-07-17 04:40:02或者依次打开我的电脑->卸载或更改程序->卸载你所卸载的软件,您可以用 Window XP控制面板中的添加或删除程序功能,或用 Windows Vista、Windows 7中的程序和功能删除谷歌浏览器卸载时,您可以选择"删除在本机保存的... -
Mybatis源码分析(十久) - 缓存模块分析(装饰器模式)
2019-06-30 22:05:45除核心功能之外,有很多额外的附加功能,如:防止缓存击穿,添加缓存清空策略(fifo、lru)、序列化功能、日志能力、定时清空能力等 附加功能可以以任意的组合附加到核心基础功能之上 怎么样优雅的为核心功能添加... -
fckedit编辑器
2013-11-10 14:28:32在前台千万不要使用Default的toolbar,要么自定义一下功能,要么就用系统已经定义好的Basic, 也就是基本的toolbar,找到: FCKConfig.ToolbarSets["Basic"] = [ ['Bold','Italic','-','OrderedList','Unordered... -
3dmax 管子动画_3DMax水管里流水的动画怎么做呢?
2021-01-13 15:39:06回答:单纯的海水有很多种创建方法,可以用置换、噪波用材质来表现。但如果想得到水的运动效果,就需要综合运用以上的功能来完成了。1.首先在场景中创建一个平面,注意,为了得到较多细节分段数给多一些。(100X100)2.... -
怎样更好的了解风力发电机的使用功能
2020-08-19 08:46:58怎样更好的了解风力发电机的使用: 今天是本人上班第二天,主要是做的销售...因为什么都不懂不知道怎么问,都说各行如隔山真是如此,目前只知道风力发电机 太阳能光伏板 控制器 逆变器 蓄电池其他的一无所知,销. -
两个晚上搞了一个QT文本编辑器,效果比较简陋啊
2020-09-17 21:50:35日常开发一直是linux后台 + 控制系统软件开发,感觉每天的黑框甚是无聊啊,遥想界面开发,平时主要用C++,无他,只能QT了,上次使用还是读书时,已经忘得差不多了。好在看了一下QT的基本框架,感觉封装的非常好,... -
自定义连发工具生成器
2010-10-20 15:00:03连发的意思是按下一个键不放就自动连按该键,比如按下X键不放就实现自动攻击,比手动按要快得多,节省力气,还能减少键盘寿命o(∩_∩)o...,至于效果怎么样自己测试吧。 设置自己的连发键: 下载好之后运行 SET_AHK... -
c++ 窗口截图_求求你,别再用QQ截图了!(附设计师专属截图神器)
2020-12-17 16:56:04不管你是否是设计师,截图都是我们生活...可是功能单一图片质量不高今天就来介绍一款设计师必备软件个性化截图利器1强大的截图功能•自动检测界面元素区域•像素级的鼠标移动控制、截图范围控制•取色器 (试试F1,C,...
-
2021年 系统架构设计师 系列课
-
【硬核】一线Python程序员实战经验分享(1)
-
LoadRunner设置检查点的几种方法介绍
-
MySQL 高可用工具 DRBD 实战部署详解
-
深度学习-源码
-
中国移动设备用户体验调研报告
-
Python爬取《你好李焕英》豆瓣短评并基于SnowNLP做情感分析
-
vue3从0到1-超详细
-
一天学完MySQL数据库
-
【Python-随到随学】FLask第二周
-
09-JavaVM与JNIEnv
-
2021年 系统分析师 系列课
-
牛客练习赛77 A-C
-
51单片机60秒倒计时 数码管显示
-
由于找不到vcruntime140_1.dll,无法继续执行代码,重新安装程序可能会解决此问题
-
scrapy_pipelines.py
-
SecureCRT 连接 GNS3/Linux 的安全精密工具
-
cadence_allegro_查看dra文件所用pad_查看封装文件用的引脚列表
-
从设计到策划——我的成长经历
-
2021最新可用影视小程序-带详细安装教程