铁岭市SIEMENS一级分销商西门子(中国)有限公司授权总代理
- 供应商
- 广东湘恒智能科技有限公司
- 认证
- 西门子PLC
- 西门子伺服电机
- 西门子触摸屏
- 西门子电缆
- 西门子变频器
- 西门子模块
- 联系电话
- 13510737515
- 手机号
- 13185520415
- 联系人
- 董海波
- 所在地
- 惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房(仅限办公)
- 更新时间
- 2025-03-02 08:00
以上都是定性的描述,能不能定量说明呢?当然了,确定性肯定是有具体指标的,脱离具体数字分析实时性没有意义。如果我们将反应时间规定为1个小时,那么就连windows这样的操作系统也是实时的了,因为它响应再慢也不会花一个小时。工业上很多场合1个小时显然是太夸张了,我们至少要缩小到10ms这样的量级,例如一个控制或插补周期执行时间不能超过1ms,这样windows系统肯定满足不了要求。zui近炒的比较火的5g通信技术可以将延时控制在1ms左右,虽然它也不是实时的,但是由于速度足够快所以也可以用于工业控制领域取代有线通信,这就是为什么5g这么火的原因。
理解实时性不太难,但是影响实时性的因素有哪些呢?这方面讨论涉及操作系统原理,各大机器人厂家肯定不会公开自己的测试和试验结果。评价实时性的主要指标是latency和jitter,jitter受到操作系统调度算法的影响很大,其它的例如系统负载也有影响,调度算法的影响大概是十微妙级的。jitter对机器人性能的影响不容易量化,因为中间环节有些复杂(底层伺服闭环)。
影响实时性的另一个主要因素是内存分配。动态内存的分配耗时非常不确定,这也是为什么很多实时系统都避免采用动态内存。这里我举两个例子:
1.在plc中不提供动态数组,只能用定长数组,也就是说使用之前必须先分配好数组长度。这显然很不方便,例如我们有时在函数调用时传递一个数组,而事先并不想考虑数组的大小。这样一来,我们只好计算好每次传递的数组长度,或者设置一个尽量大的数组,显然这会造成空间的浪费。
2. 如果你有过在matlabsimulink中编写s函数或者用户自定义函数的经历,你就会发现,s函数中要求你在使用变量之前必须先进行定义或分配空间,不能像在m文件中一样不事先定义就赋值(可以看这个matlab自带的例子:integratematlab algorithm inmodel)。因为simulink中的模块是可以生成c语言并导出到硬件上直接运行的,这意味着它对实时性有要求。一些plc,例如前面提到的菲尼克斯和倍福,都支持将simulink中仿真好的控制模型直接生成为控制程序,而无需重新编程。难怪我们在simulink中编写s函数的时候总感觉不像在matlab写程序那么自由随意。