[0002] 背景技术:在冶金行业连铸生产过程中,在线辊道秤的使用大大提高了
钢坯的称重的速度,但由于辊道秤频繁对热钢坯计量,同时
水冷却输送辊环境恶劣,造成称重
传感器和秤体限位不同程度的锈蚀,使辊道秤的
精度得不到保证。在降成本、保精度的前提下,辊道秤称量精度的保证,成为一个技术难题。
[0003] 发明内容:是为满足类似冶金行业连铸辊道秤精度的实时监控,通过实时比对及时发现秤的误差是否在允许的范围内,从而提高辊道秤称量的准确性,实现设备的精细化管理。本发明提供一种连铸辊道秤实时校准方法。
[0005] 本发明由
数据处理系统和
人机界面系统两大部分组成,
数据处理系统由称重传感器、称重仪表、西
门子S7-300可编程
控制器和工业以太网四部分组成,称重传感器安装在连铸出坯区域的可升降辊道台上,称重传感器的输出连接称重仪表的输入,称重仪表的输出连接S7-300的模拟量
信号输入模
块,通过工业以太网将称重数据发送至人机界面系统中。
[0006] 本发明的校准步骤是:称量——比对——判定,即在数据比对系统中设置理论值,使用标准砝码坯放置在连铸辊道秤进行称量,将砝码坯的称量数据与理论值通过数据处理系统进行比对,在人机界面系统中可以直观地看到实时比对结果。如果符合要求,说明连铸辊道秤的精度合格;如果不符合要求,对连铸辊道秤进行校准后,进行下一轮称量——比对——判定循环。
[0007] 本发明所选的称重传感器:选用首昌大和的YCCA-30t型传感器;称重仪表:选用首昌大和EDI-700智能称重仪表;
数据处理单元:选用西门子S7-300PLC;
人机界面系统:采用西门子WinCC视窗技术开发界面,通过后台SQL
数据库进行比对数据的归档保存。
[0008] 辊道秤称重数据比对人机界面采用西门子WinCC
软件开发,具体WinCC全局脚本程序如下:#include
void ReportJob ( LPCSTR pszJobName, LPCSTR pszMethodName )
{
HPROPERTIES hProperties = NULL;
CMN_ERRORA CmnErrorA = { 0 };
TCHAR szProjectName [MAX_PATH+1] = { '\0' };
// Inform user that ReportJob() was called:
printf ( "Started: ReportJob(\"%s\", \"%s\")\r\n", pszJobName, pszMethodName );
// Get current project name into szProjectName from data manager:
memset ( &CmnErrorA, 0, sizeof CmnErrorA );
memset ( szProjectName, 0, sizeof szProjectName );
if( ! DMGetRuntimeProject ( szProjectName, sizeof szProjectName - 1, &CmnErrorA ) )
{
printf ( "DMGetRuntimeProject() in ReportJob(\"%s\", \"%s\")", pszJobName, pszMethodName );
RptShowError ( NULL, &CmnErrorA );
return;
}
// Initialize RpjApi.dll:
memset ( &CmnErrorA, 0, sizeof CmnErrorA );
if ( ! RPJAttach ( &CmnErrorA ) )
{
printf ( "RPJAttach() in ReportJob(\"%s\", \"%s\")", pszJobName, pszMethodName );
RptShowError ( NULL, &CmnErrorA );
return;
}
// Creates a new data transfer buffer:
memset ( &CmnErrorA, 0, sizeof CmnErrorA );
hProperties = RPJCreatePropertyHandle ( szProjectName, &CmnErrorA );
if ( NULL == hProperties )
{
printf ( "RPJCreatePropertyHandle() in ReportJob(\"%s\", \"%s\")", pszJobName, pszMethodName );
RptShowError ( NULL, &CmnErrorA );
RPJDetach ( NULL );
return;
}
// Copy all properties of the print job description
// with name pszJobName to the data transfer buffer:
memset ( &CmnErrorA, 0, sizeof CmnErrorA );
if ( ! RPJGetJobProps ( hProperties, pszJobName, &CmnErrorA ) )
{
if ( ERR_JOBNOTFOUND == CmnErrorA.dwError1 )
{
printf ( "ReportJob(\"%s\", \"%s\") failed \r\n because job \"%s\" \r\n could not be found.\r\n",
pszJobName, pszMethodName, pszJobName );
}
else
{
printf ( "RPJGetJobProps() in ReportJob(\"%s\", \"%s\")", pszJobName, pszMethodName );
RptShowError ( NULL, &CmnErrorA );
}
RPJDeletePropertyHandle ( hProperties, NULL );
RPJDetach ( NULL );
return;
}
// Call the print job description method with name pszMethodName
// upon the data transfer buffer:
memset ( &CmnErrorA, 0, sizeof CmnErrorA );
if ( ! RPJCallJobMethod ( hProperties, pszMethodName, &CmnErrorA ) )
{
if ( PRT_ERR_JOBALREADYACTIVE == CmnErrorA.dwError1 )
{
printf ( "ReportJob(\"%s\", \"%s\") failed \r\n because job \"%s\" \r\n already is being previewed or printed.\r\n",
pszJobName, pszMethodName, pszJobName );
}
else
{
printf ( "RPJCallJobMethod() in ReportJob(\"%s\", \"%s\")", pszJobName, pszMethodName );
RptShowError ( NULL, &CmnErrorA );
}
RPJDeletePropertyHandle ( hProperties, NULL );
RPJDetach ( NULL );
return;
}
// Delete the data transfer buffer:
memset ( &CmnErrorA, 0, sizeof CmnErrorA );