diff --git a/Ccs/ccs_function_lib.py b/Ccs/ccs_function_lib.py
index d54f895fb5e151afbc0b685ac0ee8771c59d21b2..88b1cd1944d301eeb03a758dc89cbef17ed7651f 100644
--- a/Ccs/ccs_function_lib.py
+++ b/Ccs/ccs_function_lib.py
@@ -2696,11 +2696,12 @@ def encode_pus(params, *values, params_as_fmt_string=False):
     # insert fixed parameter values, cdf_value=param[7]
     for i, par in enumerate(params_nospares):
         if par[5] == 'F':
-            values.insert(i, tc_param_alias(par[-1], par[7]))
+            fixed_val = cast_str_value_ptc(par[7], par[8])
+            values.insert(i, tc_param_alias(par[-1], fixed_val))
 
     fmts = [parameter_ptt_type_tc(par) for par in params]
 
-    # deduced parameter types are not supported for TCs
+    # deduced parameter types are not supported for TCs TODO
     if 'deduced' in fmts:
         raise NotImplementedError("Deduced parameter types in TCs are not supported! ({})".format(', '.join([p[-2] for p in params if p[8] == 11])))
 
@@ -2715,6 +2716,36 @@ def encode_pus(params, *values, params_as_fmt_string=False):
         return b''.join([pack_bytes(fmt, next(vals_iter)) if not fmt.endswith('x') else struct.pack(fmt) for fmt in fmts])
 
 
+def cast_str_value_ptc(val, ptc):
+    """
+    Cast string type value to type given by PTC
+
+    :param val:
+    :param ptc:
+    :return:
+    """
+
+    if ptc == 1:
+        return int(bool(int(val)))
+    elif ptc == 2:
+        try:
+            v = int(val)  # test if val is text-calibrated
+            logger.warning("Numerical fixed value ({}) defined for enumerated type parameter (PTC=2).".format(val))
+            return v
+        except ValueError:
+            return str(val)
+    elif ptc in [3, 4]:
+        return int(val)
+    elif ptc in [5, 9, 10]:
+        return float(val)
+    elif ptc == 7:
+        return bytes.fromhex(val)
+    elif ptc == 8:
+        return str(val)
+    else:
+        raise NotImplementedError("TC fixed parameter values not supported for PTC={}".format(ptc))
+
+
 def pack_bytes(fmt, value, bitbuffer=0, offbit=0):
     """