code: def set_string(_bytearray, byte_index, value, max_size):
      
      if six.PY2:
          assert isinstance(value, (str, unicode))
      else:
          assert isinstance(value, str)
  
      size = len(value)
      # FAIL HARD WHEN trying to write too much data into PLC
      if size > max_size:
          raise ValueError('size %s > max_size %s %s' % (size, max_size, value))
      # set len count on first position
      _bytearray[byte_index + 1] = len(value)
  
      i = 0
      # fill array which chr integers
      for i, c in enumerate(value):
          _bytearray[byte_index + 2 + i] = ord(c)
  
      # fill the rest with empty space
      for r in range(i + 1, _bytearray[byte_index]):
          _bytearray[byte_index + 2 + r] = ord(' ')
docs: Set string value
  
      :params value: string data
      :params max_size: max possible string size