modbusrtu通信协议串口通讯内容摘要:
| 20 | | | | | | | 29 | 28 | ----------------------------------------- 各位赋值 : | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | ----------------------------------------- 16 进制串: | C | D | 0 | 1 | ----------------------------------------- 注:没有注册的用户只能写入 00001~ 00006 范围的状态值 ; 4)、 16 功能码写多个保持寄存器数据功能函数 Function FCN16(nport,node,address,Count:longint。 Sendstr:pchar):longint。 stdcall。 参数: nport: 串口号,取值为 1~ 8,代表 COM1~ COM8。 node: modbus 从站号,取值 1~ 255; address: 元件地址,取值范围从 40001~4XXXX 地址区 (保持寄存器 )值 (你要写标准 modbus 的 40001 地址这个值为 0000,依次类推 ) Count: 写入字元件个数,一次最多 60个但不能超出寻址范围; Sendstr: 给字写入的值,该值为 4 个一组的 16进制字符串组其取值为 0000~ FFFF(整数值为 0~ 65535); 返回值: 长整数,操作成功返回 1,不能写入或操作错误返回 0; 当要写入多个字值时依次排列即可。 如给 40001 与 40002 写值 100 和 1000,先将 100 转成 16 进制字符串 006 1000 转成 16 进制字符串 03E8, 则 sendstr=006403E8;一次最多写 64 个字即字符串长应小于等于 256。 ---------- ---- ~ --------- 写字符串序列如 : | 0064 | 03E8 | 0010 | 6004 | ~ | 0008 | 0400 | ---------- ---- ~ --------- 使用举例: FCN16(1,2,1,000A0102),由 COM1 给 modbus 2 号从站 40002(标准 modbus 地址 )的字单元写入给 10(16 进制 000A)、 40003(标准modbus 地址 ) 的字单元写入给 258(16 进制 0102)返回值为 1 表示成功; 注:没有注册的用户只能写入 40001~ 40003 范围的状态值; 5)、 modbus 功能码 16的扩展功能函数 单保持寄存器的 0~ 15 相应位的置位 (- ~ - ) Function FCN16_xSet(nport,node,address,Bit:longint):longint。 stdcall。 参数: nport: 串口号,取值为 1~ 8,代表 COM1~ COM8。 node: modbus 从站号,取值 1~ 255。 address: 元件地址,取值范围从 40001~4XXXX 地址区 (保持寄存器 )值 (你要写标准 modbus 的 40001 地址这个值为 4000,依次类推 ) Bit: 保持寄存器的位,取值 0~ 15。 返回值: 长整数,操作成功返回 1,不能写入或操作错误返回 0; 使用举例: FCN16_xSet(1,12,2,0),由 COM1 将 modbus 12 号从站 40003(标准 modbus 地址 )的第 0 个位状态值置 1,返回值为 1 表示成功 注:没有注册的用户不能使用本功能; 单保持寄存器的 0~ 15 相应位的复位 (- ~ - ) Function FCN16_xReset(nport,node,address,Bit:longint):longint。 stdcall。 参数: nport: 串口号,取值为 1~ 8,代表 COM1~ COM8。 node: modbus 从站号,取值 1~ 255。 address: 元件地址,取值范围从 40001~4XXXX 地址区 (保持寄存器 )值 (你要写标准 modbus 的 40001 地址这个值为 4000,依次类推 ) Bit: 保持寄存器的位,取值 0~ 15。 返回值: 长整数,操作成功返回 1,不能写入或操作错误返回 0; 使用举例: FCN16_xReset(1,10,3,12),由 COM1 将 modbus 10 号从站 40004(标准 modbus 地址 )的第 12个位状态值置 0,返回值为 1 表示成 功 注:没有注册的用户不能使用本功能; 单保持寄存器的 0~ 15 相应位的置复位 (- ~ - )指使相应的位短时间通断一次 (接通约60ms) Function FCN16_xSetReset(nport,node,address,Bit:longint):longint。 stdcall。 参数: nport: 串口号,取值为 1~ 8,代表 COM1~ COM8。 node: modbus 从站号,取值 1~ 255。 address: 元件地址,取值范围从 40001~4XXXX 地址区 (保持寄存器 )值 (你要写标准 modbus 的 40001 地址这个值为 4000,依次类推 ) Bit: 保持寄存器的位,取值 0~ 15。 返回值: 长整数,操作成功返回 1,不能写入或操作错误返回 0; 使用举例: FCN16_xSetReset(1,10,9,10),由 COM1 将 modbus 10 号从站 40010(标准 modbus 地址 )的第 10 个位状态值置 1 后约 60ms 再置 0,返回值为 1 表示成功 注:没有 注册的用户不能使用本功能; 四、 DLL 附加函数说明 (本段函数对未注册用户没有限制,完全可以使用。 ) 串口打开状态的读取 Function ComTrue(nport:longint):longint。 stdcall。 参数: noprt: 串口号,取值为 1~ 8,代表 COM1~ COM8。 返回值:长整型,串口成功打开返回 “1”,否则返回 “0”。 这里读取是 DLL 有效取得了串口的控制权,如果其他程序占用 (串口不存在 )等原因仍返回 “0”。 整数转换成 16进制字符串 (为 VC 等非 RAD 开发 环境所增设 ) Function CIntToHex(Dcint,Digits:Longint):Pchar。 stdcall。 参数: Cint: 待转换整数,取值为( 0~ 65535)。 Digits: 转换的字符串位数,指定位数小于实际位数时按实际输出。 在参数错误等非法的情况下返回 “Error@” 使用举例: CIntToHex(200,2),则返回字符串 “C8@”。 CIntToHex(200,4),则返回字符串 “00C8@”。 CIntToHex(200,8),则返回字符串 “000000C8@”。 CIntToHex(4500,4),则返回字符串 “1194@”。 CIntToHex(4500,3),则返回字符串 “1194@”,因为 “194”不足以表示 4500 这个数所以按实际输出字符串 “1194@”。 @为字符串数据的终止符。 16 进制字符串转换成整数 (为 VC 等非 RAD 开发环境所增设 ) Function CHexToInt(CHex:Pchar):Longint。 stdcall。 参数: CHex: 待转换字符串,取值为( 0000~ FFFF)。 使用举例: CHexToInt(03E8),则返回整数 1000。 注:在参数不正确等出错情况下返回值为 “1”。 抽取 (0~ 65535)所示整数中 (0~ 15)某个位的值 Function CinBin(CHex,Start:longint):longint。 stdcall。 参数: CHex: 待转换整数,取值为 0~ 65535(0000~ FFFF)。 Start: 抽取的位,取值为( 0~ 15)。 使用举例: CinBin(15,3),则返回值 1。 CinBin(15,4),则返回值 0。 CinBin(1000,6),则返回值 1。 读取 MB0 组合成的字节值为 “FC”(252)时,要读取 的值时,则调用 CinBin(252,1)返回值 0 表示 的值为 0。 注:在参数不正确等出错情况下返回值为 “1”。 返回字符串 Text 左边的 Count 个字符 (为 VC 等非 RAD 开发环境所增设 ) Function CLeftStr(Text:Pchar。 Count:longint):Pchar。 stdcall。 参数: Text: 字符串原型。 Count: 指定返回左侧字符串个数。 在参数错误 等非法的情况下返回 “Error@” 使用举例: CleftStr(123456, 3) = 123@。 @为字符串数据的终止符。 返回字符串 Text 右边的 Count 个字符 (为 VC 等非 RAD 开发环境所增设 ) Function CRightStr(Text:Pchar。 Count:longint):Pchar。 stdcall。 参数: Text: 字符串原型。 Count: 指定返回右侧字符串个数 在参数错误等非法的情况下返回 “Error@” 使用举例: CRightStr(123456, 3) = 456@。 @为字符串数据的终止符。 返回字符串 Text 从 Start 开始的 Count 个字符 (为 VC 等非 RAD 开发环境所增设 ) Function CMidStr(Text:Pchar。 Start,Count:longint):Pchar。 stdcall。 参数: Text: 字符串原型。 Start: 指定返回字符串的起始位置。 Count: 指定返回字符串个数。 在参数错误等非法的情况下返回 “Error@” 使用举例: CMidStr(123456,2, 3) = 234@。 @为字符串数据的终止符。 字符串 Cstr 开始于字符串 Ostr 的位置 (为 VC 等非 RAD 开发环境所增设 ) Function Cinstr(Ostr,Ckstr:Pchar。 Dcint:Longint):Longint。 stdcall。 参数: Ostr: 字符串原型。 Cstr: 查询的字符串。 Dcint: 设定查询字符串的起始位置 ,取值 =1,即最少从源字符串的第一个字符开始查询; 返回值:长整型。 使用举例: CinStr(1Tfdg23456,2,2) = 6 注:在参数不正确等出错情况下返回值为 “0”。 PC 喇叭的报警过程函数; Function MyBeep(SoundHz:longint):longint。 stdcall。 参数 :SoundHz:长整型。 返回值 :长整型 ,操作成功返回 “1”,否则返回 “0”。 使用举例: MyBeep(2020)。 按 2020的频率发出报警声。 DLL 中关于传出字符串值的函数都以 @为字符串函数值终止符,这是对多开发环境应用时方便用户正确读取返回字符串数据而设。 五、 Delphi、 VB、 VC 语言环境的开发使用说明 Delphi语言环境开发说明 在 Delphi 环境下将 、 (许可文件 )复制到应用程序目录下。modbusrtu通信协议串口通讯
相关推荐
舞垂呢扣傀蛤妆雷峰咯鲍期敢硷罗摆究挞旨秸嘶丘组敝胀竭膜摧费颤辉跺渍倪闷甚宽梨配扰缅育祭晨抚 ./configureMod_python mod_python的主要优势在于比传统 CGI更高的性能。 一个测试,使用在 Pentium Red Hat Linux。 使用 4种类型的脚本,基于标准的 CGI导入模块 (以典型的 Python CGI脚本开始 ),然后输出 39。 Hel o!39。
e 12: 参考数值 Byte 3: = FF 打开线圈 , =00 关闭线圈 Byte 4: = 00 响应 Byte 0: FC = 05 Byte 12: 参考数值 Byte 3: = FF 打开线圈 , =00 关闭线圈 (回波 ) 内容来自 Byte 4: = 00 异常 Byte 0: FC = 85 (16进制 ) Byte 1: 异常代码 = 01 or 02 示例 将值
物。 旋转机构 旋转机构包括支承装置和驱动机构两部分。 旋转支承装置采用三排滚柱式回转大轴承。 采用布置紧凑、传动效率高、工作可靠的旋转驱动机构。 采用变频调速。 9 旋转机构工作时平衡、可逆、可以作 360176。 旋转。 为防止旋转驱动机构的偶然地过载,装设极限力矩限制器,以保护电机 、金属结构和传动部件免遭损坏。 采用常开式可操纵的制动器,使旋转机构获得平稳的制动。
.......................................... 17 3 4 1. 工程概况 埃塞公路工程项目为“支持非洲发展计划(信贷号: )道路开发 3 期项目( APL3)”,项目名称为 ApostoWondoNegele 道路改造项目,本标段合同号 3,起始路段为 WaderaNegele,从K202+560 至 K267+818,全长 公里。 合同工期 910 天
然,这样是错误的映射。 本例比较简单,就选择自动。 点击确认: MicroStrategy 9 和 MicroStrategy Mobile介绍 及使用入门 基本开发流程 16 of 82 这时回回到上图,这是为销售额这个事实创建 了一个表达式,它关联了 ORDER_DETAIL这张表。 有的事实,它会有多个表达式,比如销售额,它在 ORDER_FACT这张表中,有专门的字段来表示销售额
(也是美国国标 )AZ31B, MBl相当于 M1A等。 镁合金的分类 一般来说,镁合金分类依据有三种:合金化学成份、成形工艺和是否含有锆。 按照化学成份可以分为 MgAL, MgMn, MgZn等二元系,以及 Mg. AL— Zn, MgAL— Mn等三元系和多元系。 按照成形工艺,镁合金可分为铸造镁合金和变形镁合金。 1) 铸造镁合金 目前应用的镁合金结构件一般都是铸造产品