1
fx-9860G基于串列的便携编程数字化计算原理与实现方法
覃辉qh-506@163.com
摘要:应用卡西欧新型图形编程计算器fx-9860GSD,提出了基于串列的编程方法。程序能
自动读取预先存储在串列中的已知数据与测量数据,计算结果存入其余串列中,程序运行结束后,
将串列文件下传到通讯软件FA-124并输出为扩展名为CSV的逗号分隔文件,在PC机中运行成
果整理程序,自动将CSV格式文件整理成一系列文本格式成果文件,实现了便携机编程计算的
数字化。
关键词:数字化测量计算;fx-9860GSD;串列;矩阵;数据通讯;PC机成果整理程序
1测量便携编程机计算的历史
测量的野外作业环境造就了对便携编程计算机的天然需求。最早引入我国并对测量便携编程
计算产生深远影响的计算机是PC-1500。PC-1500于80年代初进入我国市场,当时的IBMPC机
上市不久,售价上万元,国内的工资收水平入决定了PC机当时只能是少数单位购买少量台套数
供养在安装了空调机房里集中使用的贵重产品,PC机离真正的个人机并得到普及还有遥远的距
离。而PC-1500机1500元左右的售价,体积小、对使用环境要求低的便携性极大地刺激了人们
的计算消费需求,文献[1]的出版更加速了PC-1500机在测量计算中应用的前进步伐。
PC-1500机的固有缺陷是:程序只能记录在磁带上,存取程序的时间太长,磁带容易发霉,
不易保存,可靠性低,不能与PC机进行数据通讯。为此夏普公司于1991年推出了PC-1500机
的换代机型PC-E500,PC-E500基本克服了PC-1500的缺陷,增加了一个标准RS-232C口及相
应的通讯语句,能与PC机或其它外设进行数据通讯。
PC-E500原厂内存只有32KB,解决了扩容技术难题后最多可以增加到256KB,国内一些测
绘公司将自主研发的常用测量记录计算程序固化到ROM中捆绑销售。由于90年代初出产的主
流全站仪都没有内存,自身不能记忆观测数据,需要借用外挂设备存储数据,用PC-E500作为
全站仪的外业手薄也为PC-E500找到了一个巨大的应用空间;加上PC-E500相对低廉的售价使
PC-E500在测量中的应用迅速形成气候,并顺理成章地成为PC-1500的替代机型。
20世纪末,随着闪存技术的成熟及制造成本的不断下降,主流全站仪开始自带内存,从上
世纪90年代末能存储2000个点的观测数据发展到现在插一块2GB的SD卡存储海量观测数据,
将PC-E500作为全站仪外挂存储器的应用领域自然消失,但在测量便携机计算领域,PC-E500
仍然具有强大的生命力。
随着PC兼容机及笔记本电脑制造成本的下降、应用软件的不断丰富、互联网推动PC机应
用领域的不断扩展等都刺激了PC机的普及速度。这使得只有单一BASIC语言功能的PC-E500
遭遇发展中的天花板已成必然,PC-E500在世界市场的萎缩已不可逆转,这也是夏普公司于2003
年停产PC-E500的重要原因。在我国的测量计算领域,虽然PC-E500仍然具有较大市场需求空
间,但中国市场每年区区数千台的销量显然维持不了夏普生产线的正常运转。现在中国市场上销
售的PC-E500主要是从某些贸易公司从日本中学生手中收购的二手翻新机。
无论PC机如何发展,只要它的功能与性价比满足不了测量野外便携计算的需求,便携机的
需求就始终存在,不会消失。在世界便携机计算器制造领域,无论从技术水平、产品线还是销量,
卡西欧公司一直位居龙头老大的地位。但在20世纪末,由于卡西欧公司对中国市场的重视程度
远不及夏普公司,从而给了夏普公司在中国近20年蜜月般的黄金发展期。
2便携编程机计算的现状
测量野外需求的多样性与复杂性,造就了测量便携编程机计算鲜明的个性化特点。测量技术
人员在工作中遇到的共性计算问题一般都可以使用商业计算软件解决,但许多个性化计算问题是
商业计算软件无法企及的,这就需要测量人员根据计算的数学模型与具体需求,自己动手编写程
序进行计算。这也是在基于PC机的商业测量计算软件较发达的今天,掌握一款便携机程序语言
进行编程计算仍有广泛市场需求的重要原因。PC-1500与PC-E500在测量行业的成功应用证明,
作为一名测量工程技术人员,如果不掌握一种便携机语言,要想提高野外工作的效率几乎寸步难
行。
2
以2003年夏普公司停产PC-E500并退出便携机制造领域为契机,卡西欧公司开始发力中国
市场,其首打产品是它的工程机fx-4800P。fx-4800P除具有普通计算器的全部功能外,还内置最
精简的类BASIC语言,具有26个标准变量与可定义的扩充变量,内存4.4KB,可以按文件名存
储程序文件,允许主程序调用子程序。fx-4850P是将fx-4800P的内存扩充到27.8KB的改进产品,
其核心技术与fx-4800P完全相同。
文献[2][3][4]的出版加速了fx-4800P在测量工程计算领域的普及速度,文献[5]将fx-4800P
的应用渗透到了测量教学的各章节中,给fx-4800P在高校测量教学中的应用铺平了道路。近几
年,fx-4800P的销量一路高涨,整个4000系列机2005年在中国市场的销量接近9万台就是一个
重要的佐证。
fx-4800P的精简类BASIC语言仅有赋值语句=,无条件转移语句Lbl~Goto,条件转移语句
~~,计数转移语句Isz和Dsz,调用子程序语句Prog,连BASIC语言中最常用的循环语
句For-To-Next都省略了,它是将PC机的BASIC语言精简到极致的程序语言,其优点是语句
少,便于学习掌握,很适合于编写小型程序。当使用fx-4800P编写稍大且结构复杂的程序时,
就需要频繁地使用无条件转移语句Lbl~Goto,过多的无条件转移语句将使编写的程序变得较难
阅读。例如,我们根据收集到的读者信息了解到,文献[4]的基本型路线平曲线中边桩坐标计算
程序HQCS就很少有读者读懂了。就算是作者本人,过一段时间再去读该程序都很费时间。这
不是程序结构设计有问题,而是fx-4800P的类BASIC语言的语句太少所致。
fx-4800P没有数据通讯口,机器内的程序只能由用户通过按键一步一步地输入,程序计算的
成果也只能由用户手工抄录,这给程序与数据的存储及交流设置了无法越愈的障碍,也使过去用
贯了PC-E500的用户感到很不适应。
fx-4800P的上述缺陷决定了它只能满足测量便携计算的低端需求,离替代PC-E500的功能
还有遥远的距离,这也是在fx-4800P有如此大销量的情况下,二手翻新PC-E500机仍有巨大市
场需求的重要原因。
3矩阵串列编程计算器—fx-9860GSD
图1所示的fx-9860GSD是卡西欧公司于2006年10月最新引入中国市场的一款高端矩阵串
列编程计算器,与fx-4800P比较,它有如下特点:
1)绘函数坐标图功能。
2)绘数表函数与统计图功能。
3)能直接对矩阵进行连续的+,-,×,转置,行列式,赋值与求逆等运算,最多可以求
250×250阶非奇异方阵的逆阵。
3
4)内置6个串列文件,每个串列文件又
内置26个串列,用户可用最大串列数达6×
26=156个。
5)类BASIC结构化程序语言,易学易
用,编写的程序易于阅读。
6)类似于Excel的电子表格功能。
7)具有62.2KB主内存,1.5MB存储器
内存,可以插32MB~1GB的标准SD卡作为
外存储器。
8)28个字母寄存器与多种类型的答案寄
存器。
9)使用随机标配的SB-623Pin数据线连
接两台计算器的3Pin口,可以在两台
fx-9860GSD间进行数据通讯。
(10)使用随机标配的USB口数据线连接
fx-9860GSD与PC机的USB口,使用数据通
讯软件FA-124可在PC机与计算器间进行数
据通讯,可以在FA-124中编写程序并上传到
fx-9860GSD主内存中,提高了输入与编辑程
序的效率。
11)在PC机中直接释放SD卡中的打包数据文件。
(1)串列功能
串列类似于PC机BASIC语言的数组,fx-9860GSD内置了File1~File6六个串列文件,
每个串列文件包含List1~List26二十六个串列,与数组的使用规则相同,使用串列存取数据前
需要先定义其维数,每个串列单元都是使用12字节存储一个15位尾数加2位指数的高精度数值。
由于系统定制的串列函数Fill,Seq,
Min,Max,Mean,Median,SortA,SortD
可以对串列进行操作,所以串列具有比数组
更强大的功能。例如MinList20为返回串
列List20的最小值,MeanList23为返回
串列List23的平均值,SortAList24为返
回串列List24排升序的结果等等,这些功能
在PC机的BASIC语言中需要使用算法编程
实现。
使用数据线连接好fx-9860GSD与PC
机的通讯口,应用通讯软件FA-124可以将
fx-9860GSD内存中的串列数据下传到FA-124中,并输出为.CSV格式的逗号分隔文件保存,用
户可以使用Excel软件打开该文件。
编写测量计算程序时,如果将程序计算所需的已知数据与计算结果存储在串列中,程序计算
完成后,使用PC机的成果整理程序从.CSV格式的逗号分隔文件中读取数据,就可以根据计算
的需要将其整理成文本格式文件,供打印、存档或CASS坐标展点及上传到全站仪内存使用,从
而实现便携机计算的数字化。这是本文提出的一个非常重要的编程理念。
(2)结构化类BASIC语言
与fx-4800P的类BASIC语言比较,fx-9860GSD的赋值语句由=改为了;子程序中必须有
一条Return语句控制返回调用主程序,而fx-4800P不需要;条件转移语句由~~改为更简
单、功能更少的,这是因为fx-9860GSD新增了功能更强的结构化条件语句If~Then~Else~
IfEnd。计数转移语句Isz,Dsz仍然保留。fx-9860GSD新增了下面两类重要的语句,它是构成
fx-9860GSD结构化类BASIC语言的重要基础。
图1fx-9860GSD的键面与主菜单
图2用SB-62数据线连接两台fx-9860GSD
4
1)条件语句:If~Then~Else~IfEnd
2)循环语句:For~To~Step~Next;Do~LpWhile;While~WhileEnd
下面我们用一个程序案例来说明fx-4800P与fx-9860GSD程序编写方法的差异。
计算一个起点至任意个端点方向的边长与坐标方位角。
fx-4800P程序,程序名:DB4800
A"X0=":B"Y0="提示输入起点的坐标
Lbl0:{XY}循环提示输入端点的坐标
C=X-A:D=Y-B计算起点至端点的坐标差
Pol(C,D)使用极坐标函数计算
J<0T=J+360:T=J计算方位角
"DIST=":I显示起点至端点的边长
"BEAR=":T显示起点至端点的方位角
Z"1CONT,ELSESTOP"输入是否计算下一个端点的控制数值
Z=1Goto0:"END"控制数值为1时继续,为其余任意数值终止
fx-9860GSD程序,程序名:DB9860
"X0(m)="?A:"Y0(m)="?B提示输入起点的坐标
Do循环语句
"Xi(m)="?X:"Yi(m)="?Y提示输入端点的坐标
X-AC:Y-BD计算起点至端点的坐标差
Pol(C,D)使用极坐标函数计算
IfListAns[2]<0:ThenListAns[2]+360T:ElseListAns[2]T:IfEnd
"Dist(m)=":ListAns[1]显示起点至端点的边长
"Bear(DMS)=":T显示起点至端点的方位角
"Cont(1),Stop(Else)="?Z输入是否计算下一个端点的控制数值
LpWhileZ=1控制数值为1时继续Do循环,否则结束程序
"DB9860End"
使用上述程序计算起点1至端点2,3,4,5的边长与方位角的结果列于表1,两个程序计
算出的结果完全相同。
表1计算起点1至2,3,4,5端点的边长与方位角
起点x(m)y(m)端点x(m)y(m)Dist(m)Bear(d)
1001194.8612325.8205031413.1992063.384341.386309.7593272
5041556.7422096.739428.294327.6650223
5051497.7722350.511303.9164.660013434
5061354.2292317.156156.603356.8881931
在程序DB4800中,极坐标函数Pol(C,D)计算出的边长存储在I变量、角度存储在J变量,
无论Pol(C,D)函数后是否有显示命令,都将自动显示计算结果I与J的值。而在程序DB9860
中,极坐标函数Pol(C,D)计算出的边长存储在答案串列ListAns[1]、角度存储在答案串列List
Ans[2]中,当Pol(C,D)后没有显示命令时,不显示计算结果。
图3用随机标配的USB口数据线连接fx-9860GSD与PC机
5
比较上述两个程序容易发现,DB9860的程序结构比DB4800的程序结构更加清晰;比较两
个程序的运行结果可以发现,无论是输入数据还是输出计算结果,fx-4800P有许多重复显示,而
fx-9860GSD没有这些问题,屏幕显示的输入输出数据内容非常干净。
(3)数据通讯
fx-9860GSD数据通讯的数据类型包括程序、矩阵数据、串列数据、统计数据、电子表格数
据、图表数据、26个字母变量等。数据通讯在两台fx-9860GSD间进行时,需要用SB-62数据
线连接两台fx-9860GSD的通讯口,如图2所示,也通过SD卡传输数据。数据通讯在fx-9860G
SD与PC机间进行时,需要使用随机标配的USB口数据线,通过通讯软件FA-124进行。
4基于串列的数字化编程计算原理与实现方法
可以将任何一个计算程序看作为输入/输出处理器,运行程序时,要求输入程序计算所需要
的已知数据,程序对已知数据处理后输出计算结果。因此,数据输入输出方式的选择将对程序的
使用效率产生影响。
在程序DB4800中,用户只能通过屏幕对话的方式输入已知数据,计算器也只能以屏幕显示
的方式输出计算结果,没有其他选择,DB9860程序也是使用DB4800的输入输出数据方式。以
屏幕对话方式输入数据的缺点是,当需要重复计算前一个点的边长与方位角时,需要重复前已输
入过的数据;屏幕动态显示输出的计算结果需要用户及时抄录,否则后面计算出的结果将覆盖前
已计算的结果。
下列程序DBL9860是假设起点的点号、x坐标、y坐标分别存储在串列单元List1[1],List
1[2],List1[3]中,List2,List3,List4分别存储端点点号、x坐标、y坐标,计算出的边长
存储在List5中,方位角存储在List6中,串列规划列于表2。
表2程序DBL9860的串列规划
行号List1List2List3List4List5List6
11005031413.1992063.384341.386309.7593272
21194.8615041556.7422096.739428.294327.6650223
32325.8205051497.7722350.511303.9164.660013434
45061354.2292317.156156.603356.8881931
程序名:DBL9860
"Distantandbearingofside."显示程序计算标题
Norm1:DimList2N计算端点的个数
NDimList5:NDimList6定义存储计算结果串列维数
"EndPointnum=":N显示端点数
"Start"List1[0]:"EndP"List2[0]为起点与端点串列赋子名
"Px(m)"List3[0]:"Py(m)"List4[0]为端点坐标串列赋子名
"Dist(m)"List5[0]:"Bear(m)"List6[0]为平距与方位角串列赋子名
For1IToN循环计算起点至端点平距与方位角
List3[I]-List1[2]C:List4[I]-List1[3]D计算起点至端点的坐标差
Pol(C,D)使用极坐标函数计算
ListAns[1]List5[I]输出边长结果到串列单元
IfListAns[2]<0:ThenListAns[2]+360List6[I]:ElseListAns[2]List6[I]:IfEnd
Next
"Side(m)List5"显示边长存储在List5
"Bearing(Deg)List6"显示方位角存储在List6
"DBL9860End"
程序运行前,先按键进入STAT模式,按照表2的要求在List1~List4输入已知
数据,结果见图4中图所示。按键进入PRGM模式,选择运行DBL9860程序,用户不
需要输入任何数据即可完成计算,屏幕显示结果见图4左图所示。再按键进入STAT模
式,查看List5与List6的计算结果,见图4右图所示。
与程序DB9860动态显示计算结果比较,程序DBL9860计算的边长与方位角结果静态地保
存在串列List5与List6中,可以进入STAT模式随时查阅。用户可以随时根据需要方便地编
6
辑起点与端点的坐标,也可以随意删除或添加端点的坐标,完成已知数据的编辑后,只需运行一
次DBL9860程序就可以在串列List5与List6中获得修改后的计算结果。
通过串列静态输出计算结果的另一个好处是,可以将当前串列文件的数据下传到FA-124中,
再将其输出为filen.CSV逗号分隔文件(n=1~6),使用PC机程序语言编写一个成果整理程序,通
过从filen.CSV文件中读取数据,并整理输出一个文本格式文件供存档或打印,输出一个坐标文
件供CASS展点,从而实现便携机编程计算的数字化。
图5为成果整理程序DBL9860.exe的运行界面,它采用TrueBASIC语言编写,将源程序编
译并汇编后生成的.exe格式可执行程序文件可以在任意版本的Windows中运行。运行DBL9860.
exe时,用户只需要输入路径与串列文件名后按回车键,即可在同路径下扩展名为.txt的成果文
件与扩展名为.dat的坐标数据文件,这两个文件的部分内容见图6所示。
5便携机数字化测量记录计算程序的研发
基于串列的测量计算程序DBL9860.g1m与成果整理程序DBL9860.exe配合使用,实现了便
携编程的数字化测量计算。按基于串列的编程原理编写的下列常用测量计算程序放置在文献[8]
的随书赠送程序光盘中:
1)高斯投影正算、反算、换带计算与成果整理程序(P6.g1m/G6.exe)
2)高斯平面坐标系正形变换与成果整理程序(P7.g1m/G7.exe)
3)单一图根导线近似平差计算与成果整理程序(P8.g1m/G8.exe)
4)单一闭附合等级导线条件平差计算与成果整理程序(P9.g1m/G9.exe)
5)多点测角后方交会坐标计算与成果整理程序(P10.g1m/G10.exe)
6)水准网间接平差计算与成果整理程序(P11.g1m/G11.exe)
7)顾及加宽的单圆曲线中边桩坐标计算与成果整理程序(P12.g1m/G12.exe)
8)顾及加宽的非对称基本型曲线中边桩坐标计算与成果整理程序(P13.g1m/G13.exe)
我们还将基于串列的编程原理应用于测量记录程序中,实现了野外的数字化记录,主要程序
图4程序DBL9860运行提示与串列结果总表
图5成果整理程序DBL9860.exe的运行界面
图6成果文件DBL9860.txt与坐标数据文件DBL9860.dat的内容
7
如下:
1)解析测图法碎部测量记录与成果整理程序(P1.g1m/G1.exe)
2)一、二等水准测量记录与成果整理程序(P2.g1m/G2.exe)
3)中丝读数法的三、四等水准测量记录与成果整理程序(P3.g1m/G3.exe)
4)单程双转点法三、四等水准测量记录与成果整理程序(P4.g1m/G4.exe)
5)普通水准测量记录与成果整理程序(P5.g1m/G5.exe)
6结束语
在卡西欧的计算器产品系列中,fx-4800P是中国工程计算市场的普及产品,但在国外早已停
产,国外市场尤其是西方发达国家市场的普及产品是fx-9860GSD。本文提出的基于串列的编程
原理充分利用了fx-9860GSD特有的串列与数据通讯功能,配合编制的PC机成果整理程序实现
了便携机计算的数字化与无纸化,使便携机的程序计算结果由动态显示手工抄录变成了静态显示
自动记录,也是便携机编程计算方法的一个重要突破。
我们的程序研发实践证明,fx-9860GSD是一款比fx-4800P功能更强、更便于编程、性价比
更高的便携机产品,它具有的6个串列文件、每个串列文件又具有26个串列,64KB的主内存
加1.5MB扩充内存及海量SD卡存储,决定了它具有取代PC-E500地位的基本性能,只要能充
分利用它的功能,多研发测量使用程序,就一定能在野外便携计算领域发挥重要的作用。
参考文献
[1]吴俊昶等编.PC-1500机BASIC程序设计与测量计算程序.北京:测绘出版社.1986.1
[2]王君瑞主编,CASIOfx-4800P/4500PA测量程序集,北京:教育科学出版社.2002.5
[3]陶启粦编著,CASIOfx-4500PA/4800P编程函数计算器公路测设实用程序,广州:华南理工大学
出版社.2003.4
[4]覃辉主编,CASIOfx-4850P/4800P/3950P编程计算器在土木工程中的应用,广州:华南理工大学
出版社.2004.7
[5]覃辉主编,土木工程测量(第2版),上海:同济大学出版社.2005.7
[6]覃辉主编,测量程序与新型全站仪的应用(第2版),北京:机械工业出版社.2007.7
[7]覃辉主编,CASIOfx-9860GSD矩阵串列编程计算器的原理与方法,北京:测绘出版社.2006.10
[8]覃辉主编,CASIOfx-9860GSD矩阵串列编程计算器使用测量程序,北京:测绘出版社.2006.10
|
|