8/19/2010 9:46 PM | |
Posts: 129 Rating: (0) |
Hi, I want to read out in my S7 program whether the cpu is a h-cpu or a normal cpu. How can I do this? Pierre |
8/20/2010 10:52 AM | |
Joined: 1/17/2007 Last visit: 8/21/2024 Posts: 1545 Rating: (537) |
Use the RDSYSST FC. This returns system status lists for the CPU. Use SSL-ID of 16#0111 which returns the CPU ident info, with INDEX of 16#0001 Here is the documentation. See section 34.5 for the read CPU ident SSL-ID. The function returns the hardware catalogue string of the module in the MIFB array (or CPUIdent in my structure). e.g. "6ES7 417-4HL04-0AB0 " for my CPU. As you can see there is a 'H' character at position 11. So check the CPU identification string to see if there is a 'H' character at position 11 of the MIFB (CPUIdent) array in your data record. I don't have any STL, but here is some SCL that will do the job. I hope is helps you. [code] SSL_HEADER : STRUCT // Holds RDSYSST call parameters LENTHDR : WORD; N_DR : WORD; END_STRUCT; CPU_DATA : STRUCT // CPU module information Index : WORD; // Data record number of record actually read (should be same as called INDEX value) CPUIdent : ARRAY [1..20] OF BYTE; // CPU indentification string Reserved : WORD; // Reserved MajorVersion : WORD; // Major version of CPU MinorVersion : WORD; // Minor version of CPU END_STRUCT; RetVal := RDSYSST(REQ := TRUE, SZL_ID := 16#0111, INDEX := 16#1, BUSY := BUSY, SZL_HEADER := SSL_HEADER, DR := CPU_DATA); IF RetVal = 0 THEN // If call successful... HCPU := (BYTE_TO_INT(CPU_DATA.CPUIdent[11]) = 16#48); // Read and store H-CPU indication ELSE // Call was unsucessful... HCPU := FALSE; // H-CPU indication cannot be obtained so assume standard CPU END_IF; [/code] |
Programming today is the race between software engineers building bigger and better idiot proof programs, and the universe producing bigger and better idiots. |
|
8/21/2010 9:21 PM | |
Posts: 129 Rating: (0) |
Hi smiffy, one more question: In your code BUSY is ignored. It's sure, that the call is finished in 1 cpu cycle? Pierre |
Follow us on