FREEMODBUS 从机
“FREEMODBUS 从机”相关的资料有哪些?“FREEMODBUS 从机”相关的范文有哪些?怎么写?下面是小编为您精心整理的“FREEMODBUS 从机”相关范文大全或资料大全,欢迎大家分享。
FreeModbus学习笔记
FreeModbus学习笔记
一、 FreeModbus简介
FreeMODBUS一个奥地利人写的Modbus协议。它是一个针对嵌入式应用的一个免费(自由)的通用MODBUS协议的移植。Modbus是一个工业制造环境中应用的一个通用协议。Modbus通信协议栈包括两层:Modbus应用层协议,该层定义了数据模式和功能;另外一层是网络层。
FreeMODBUS 提供了RTU/ASCII 传输模式及TCP协议支持。FreeModbus遵循BSD许可证,这意味着用户可以将FreeModbus应用于商业环境中。目前版本FreeModbus-V1.5提供如下的功能支持:
表1 FreeModbus-V1.5功能支持
代码 Master Slave MB_RTU MB_ASCII MB_TCP 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x0B 0x0C 0x0F 0x10 0x11 0x14 0x15 0x16 0x17 0x18 0x2B 0x2B/0x0D 0x2B/0x0E 主机 从机 RTU模式 ASCII模式 TCP模式 读线圈 读离散输入 读保持寄存器 读输入寄存器 写单个线圈 写单个寄存器 读异常状态
FreeModbus--完全分析
FreeModbus--完全分析
说明:freemodbus-v1.5.0
主流程
[objc] view plaincopy
1. /* ----------------------- Start implementation -----------------------------*/ 2. int
3. main( void ) 4. {
5. eMBErrorCode eStatus; 6.
7. eStatus = eMBInit( MB_RTU, 0x0A, 0, 38400, MB_PAR_EVEN ); 8.
9. /* Enable the Modbus Protocol Stack. */ 10. eStatus = eMBEnable( ); 11.
12. for( ;; ) 13. {
14. ( void )eMBPoll( ); 15.
16. /* Here we simply count the number of poll cycles. */
freeModbus代码解读及移植笔记
1. FreeModbus协议分析
协议必须首先调用初始化功能eMBinit()函数。后调用eMBEnable(),最后,在循环体或者单独一个任务中调用eMBPoll()函数。
2. 应用层协议 2.1. 系统的启动
2.1.1. eMBInit()函数的源码分析
以RTU方式为例,首先,检查调用的地址是否合法。如不合法,返回错误。如果合法则继续执行,
首先,针对RTU方式还是ASCII方式,选择不同的编译模块。
对需要调用的函数指针进行复制。如果移植需要改变其他用途,则要修改相应的指针,包括如下赋值:
pvMBFrameStartCur = eMBRTUStart; pvMBFrameStopCur = eMBRTUStop; peMBFrameSendCur = eMBRTUSend; peMBFrameReceiveCur = eMBRTUReceive;
pvMBFrameCloseCur = MB_PORT_HAS_CLOSE ? vMBPortClose :NULL; pxMBFrameC
freemodbus程序解读之port.c
/*
* FreeModbus Libary: LPC214X Port
* Copyright (C) 2007 Tiago Prado Lone * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PART
Freemodbus RTU在stm32上的移植分析
Freemodbus RTU在stm32上的移植分析
最近用到free modbus,需要在stm32上进行移植,以作modbus-RTU之用。现成协议的东西用起来很方便,现成源码很快就可以为设计者所用,也是当初制定标准的初衷吧。首先下载最新的modbus源码,所谓技术更新换代的比较快,用就用最新的东西,协议嘛也要下载最新的,google一下,在http://www.freemodbus.org/index.php?idx=5下载最新的版本freemodbus-v1.5,下载最新的协议不仅可以防止被人改动导致自己做无用功,保持原生态也可以很好的与制定者进行交流。解压freemodbus-v1.5,目录结构很清晰,主要有四个文件件,分别是demo、modbus、tools、doc。其中tools为上位机测试modbus程序,doc为一些说明文件先不讨论。有用的是demo以及modbus。打开demo,没有看到stm32的工程文件,有一个叫BARE的文件夹,是一些不包括任何处理器的部分源代码,我们就用这个建立工程文件。为了给以后移植modbus-TCP带来方便,这里直接打开之前测试好的基于ENC28J68的LwIP的stm32工程,在
十个步骤将操作系统从物理机迁移到虚拟机
老板让你在很短的时间里执行一项操作系统迁移的任务,此时,如果你有一个功能完整的且经过测试的物理机到虚拟机迁移的解决方案,那么你将是一个真正的英雄!P2V的解决方案可以使你在不影响生产网络或不重新在生产网络中进行配置的前提下执行服务器迁移。在这里,我将向大家解释一些Microsoft Virtual Server Migration Toolkit(VSMT)的内部工作机制,并且演示一下为了实现迁移,应如何使用ADS来配置一台可移动的服务器 。
在2006年12月份的“突破ADS障碍”一文中,我给大家展示了在Windows操作系统迁移时,如何构建一个基础的移动ADS解决方案。接着,在2007年5月份的文章“提升移动ADS解决方案”中,我展示了如何通过安装VSMT来扩展移动ADS解决方案,进而执行物理机到虚拟机的迁移。接下来我将给大家演示如何使用VSMT来执行一个P2V的迁移。
开始之前
通过本系列的文章,你已经知道如何在一个移动的小车上组合必要的硬件和安装基本的软件来创建一个移动的ADS解决方案:Windows Server 2003企业版,动态主机配置协议(DHCP)服务器、ADS1.1、Virtual Server 2005 R2 SP1和
freeModbus代码解读及移植笔记(可编辑修改word版)
1. FreeModbus 协议分析
协议必须首先调用初始化功能eMBinit()函数。后调用eMBEnable(),最后,在循环体或者单独一个任务中调用eMBPoll()函数。
2. 应用层协议
2.1. 系统的启动
2.1.1. eMBInit()函数的源码分析
以RTU 方式为例,首先,检查调用的地址是否合法。如不合法,返回错误。如果合法则继续执行,
首先,针对RTU 方式还是ASCII 方式,选择不同的编译模块。
对需要调用的函数指针进行复制。如果移植需要改变其他用途,则要修改相应的指针,包括
如下赋值:
pvMBFrameStartCur = eMBRTUStart;
pvMBFrameStopCur = eMBRTUStop;
peMBFrameSendCur = eMBRTUSend;
peMBFrameReceiveCur = eMBRTUReceive;
pvMBFrameCloseCur = MB_PORT_HAS_CLOSE ? vMBPortClose :NULL;
pxMBFrameCBByteReceived= xMBRTUReceiveFSM;
pxMBFrameCBTransmitterEmpty = xMBRTUTransmitFSM;
freeModbus代码解读及移植笔记(可编辑修改word版)
1. FreeModbus 协议分析
协议必须首先调用初始化功能eMBinit()函数。后调用eMBEnable(),最后,在循环体或者单独一个任务中调用eMBPoll()函数。
2. 应用层协议
2.1. 系统的启动
2.1.1. eMBInit()函数的源码分析
以RTU 方式为例,首先,检查调用的地址是否合法。如不合法,返回错误。如果合法则继续执行,
首先,针对RTU 方式还是ASCII 方式,选择不同的编译模块。
对需要调用的函数指针进行复制。如果移植需要改变其他用途,则要修改相应的指针,包括
如下赋值:
pvMBFrameStartCur = eMBRTUStart;
pvMBFrameStopCur = eMBRTUStop;
peMBFrameSendCur = eMBRTUSend;
peMBFrameReceiveCur = eMBRTUReceive;
pvMBFrameCloseCur = MB_PORT_HAS_CLOSE ? vMBPortClose :NULL;
pxMBFrameCBByteReceived= xMBRTUReceiveFSM;
pxMBFrameCBTransmitterEmpty = xMBRTUTransmitFSM;
从格从杀格
从格.从杀格 从格
所谓从格,即原局日主弱极,满柱皆食伤、财星及官杀,日主不得不从其柱中旺热。 从格中又分从儿格、从财格、从杀格、从势格。
所谓从儿格,即原局食伤一行之气专旺,日主弱极虚浮无恨。 所谓从财格,即原局财星一行之气专旺,日主弱极无根虚浮。
所谓从杀格,即原局官杀一行之气专旺,日主弱极无根,不得不弃命从杀。
关于从势格,请同学们参看《四柱原象信息破译》下册中“四柱特殊命局剖析”一文,此不赘述。
从格有真从格与假从格之分。 一、从儿格
1、真从儿格八字辨别
(1)四柱八字食伤一行之气得时秉令,柱中不见官杀、印星、财星及比劫,日主弱极无限。 (2)食伤拓柱中月支当令司权,且天透地藏,食伤气势强旺,原局有财星但不见印星,日主弱极无根。
(3)原局既有财星又有官星,但食伤之气独旺。 例一、一九八八年农历六月十七日戍时生人。 食 伤 日 食
干造:戊辰 己未 丙戌 戊戍
财 才 杀 官 枭 印 比 劫
大运:庚申 辛酉 壬戍 癸亥 甲子 乙丑 丙寅 丁卯
从格从杀格
从格.从杀格 从格
所谓从格,即原局日主弱极,满柱皆食伤、财星及官杀,日主不得不从其柱中旺热。 从格中又分从儿格、从财格、从杀格、从势格。
所谓从儿格,即原局食伤一行之气专旺,日主弱极虚浮无恨。 所谓从财格,即原局财星一行之气专旺,日主弱极无根虚浮。
所谓从杀格,即原局官杀一行之气专旺,日主弱极无根,不得不弃命从杀。
关于从势格,请同学们参看《四柱原象信息破译》下册中“四柱特殊命局剖析”一文,此不赘述。
从格有真从格与假从格之分。 一、从儿格
1、真从儿格八字辨别
(1)四柱八字食伤一行之气得时秉令,柱中不见官杀、印星、财星及比劫,日主弱极无限。 (2)食伤拓柱中月支当令司权,且天透地藏,食伤气势强旺,原局有财星但不见印星,日主弱极无根。
(3)原局既有财星又有官星,但食伤之气独旺。 例一、一九八八年农历六月十七日戍时生人。 食 伤 日 食
干造:戊辰 己未 丙戌 戊戍
财 才 杀 官 枭 印 比 劫
大运:庚申 辛酉 壬戍 癸亥 甲子 乙丑 丙寅 丁卯